Devices, methods, and graphical user interfaces for navigating and editing text

ABSTRACT

An electronic device displays text of an electronic document on a display; displays an insertion marker at a first position in the text of the electronic document; detects a first horizontal gesture on a touch-sensitive surface; in response to a determination that the first horizontal gesture satisfies a first set of one or more predefined conditions: translates the electronic document on the display in accordance with a direction of the first horizontal gesture, and maintains the insertion marker at the first position in the text; and, in response to a determination that the first horizontal gesture satisfies a second set of one or more predefined conditions, moves the insertion marker by one character in the text from the first position to a second position in the text in accordance with the direction of the first horizontal gesture.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/217,747, filed on Aug. 25, 2011, now U.S. Pat. No. 9,032,338, issuedon May 12, 2015, which claims priority to U.S. Provisional ApplicationNo. 61/491,321, filed May 30, 2011, entitled “Devices, Methods, andGraphical User Interfaces for Navigating and Editing Text,” which areincorporated herein by reference in their entirety.

TECHNICAL FIELD

This relates generally to electronic devices with touch-sensitivesurfaces, including but not limited to electronic devices withtouch-sensitive surfaces that display and edit electronic documents.

BACKGROUND

The use of touch-sensitive surfaces as input devices for computers andother electronic computing devices has increased significantly in recentyears. Exemplary touch-sensitive surfaces include touch pads and touchscreen displays. Such surfaces are widely used to interact with anelectronic document on a display.

Exemplary interactions include navigating and editing an electronicdocument. For example, a user often needs to scroll or translate theelectronic document to text that needs to be edited. The user also needsto position or reposition an insertion marker in the text to be editedand then input additional text (e.g., via a keyboard). These documentnavigation and editing operations are typically performed numerous timeswhile working on an electronic document. These interactions may beperformed in any application that includes text entry capabilities(e.g., a drawing application, a presentation application (e.g., Keynotefrom Apple Inc. of Cupertino, Calif.), a word processing application(e.g., Pages from Apple Inc. of Cupertino, Calif.), a website creationapplication (e.g., iWeb from Apple Inc. of Cupertino, Calif.), or aspreadsheet application (e.g., Numbers from Apple Inc. of Cupertino,Calif.)).

But existing methods for navigating and editing text via touch-sensitivesurfaces are cumbersome and inefficient. For example, positioning aninsertion marker by dragging the insertion marker in accordance with afinger being moved across a touch screen requires careful hand-eyecoordination and a steady finger to correctly position the insertionmarker at the desired location. In addition, the heuristics used todisambiguate whether a finger gesture is trying to reposition theinsertion marker (without moving the document) or whether the fingergesture is trying to move the entire document (without repositioning theinsertion marker) make repositioning the insertion marker a slow andtedious process, thereby frustrating users and wasting energy. Thislatter consideration is particularly important in battery-operateddevices.

SUMMARY

Accordingly, there is a need for electronic devices with faster, moreefficient methods and interfaces for navigating and editing text viatouch-sensitive surfaces. Such methods and interfaces may complement orreplace conventional methods for navigating and editing text viatouch-sensitive surfaces. Such methods and interfaces reduce thecognitive burden on a user and produce a more efficient human-machineinterface. For battery-operated devices, such methods and interfacesconserve power and increase the time between battery charges.

The above deficiencies and other problems associated with userinterfaces for electronic devices with touch-sensitive surfaces arereduced or eliminated by the disclosed devices. In some embodiments, thedevice is a desktop computer. In some embodiments, the device isportable (e.g., a notebook computer, tablet computer, or handhelddevice). In some embodiments, the device has a touchpad. In someembodiments, the device has a touch-sensitive display (also known as a“touch screen” or “touch screen display”). In some embodiments, thedevice has a graphical user interface (GUI), one or more processors,memory and one or more modules, programs or sets of instructions storedin the memory for performing multiple functions. In some embodiments,the user interacts with the GUI primarily through finger contacts andgestures on the touch-sensitive surface. In some embodiments, thefunctions may include image editing, drawing, presenting, wordprocessing, website creating, disk authoring, spreadsheet making, gameplaying, telephoning, video conferencing, e-mailing, instant messaging,workout support, digital photographing, digital videoing, web browsing,digital music playing, and/or digital video playing. Executableinstructions for performing these functions may be included in anon-transitory computer readable storage medium or other computerprogram product configured for execution by one or more processors.

In accordance with some embodiments, a method is performed at anelectronic device with a display and a touch-sensitive surface. Themethod includes: displaying text of an electronic document on thedisplay; displaying an insertion marker at a first position in the textof the electronic document; detecting a first horizontal gesture on thetouch-sensitive surface; in response to a determination that the firsthorizontal gesture satisfies a first set of one or more predefinedconditions: translating the electronic document on the display inaccordance with a direction of the first horizontal gesture, andmaintaining the insertion marker at the first position in the text; and,in response to a determination that the first horizontal gesturesatisfies a second set of one or more predefined conditions that isdistinct from the first set of one or more predefined conditions, movingthe insertion marker by one character in the text from the firstposition to a second position in the text in accordance with thedirection of the first horizontal gesture.

In accordance with some embodiments, an electronic device includes adisplay, a touch-sensitive surface, one or more processors, memory, andone or more programs. The one or more programs are stored in the memoryand configured to be executed by the one or more processors. The one ormore programs include instructions for: displaying text of an electronicdocument on the display; displaying an insertion marker at a firstposition in the text of the electronic document; detecting a firsthorizontal gesture on the touch-sensitive surface; in response to adetermination that the first horizontal gesture satisfies a first set ofone or more predefined conditions: translating the electronic documenton the display in accordance with a direction of the first horizontalgesture, and maintaining the insertion marker at the first position inthe text; and, in response to a determination that the first horizontalgesture satisfies a second set of one or more predefined conditions thatis distinct from the first set of one or more predefined conditions,moving the insertion marker by one character in the text from the firstposition to a second position in the text in accordance with thedirection of the first horizontal gesture.

In accordance with some embodiments, a computer readable storage mediumhas stored therein instructions which when executed by an electronicdevice with a display and a touch-sensitive surface, cause the deviceto: display text of an electronic document on the display; display aninsertion marker at a first position in the text of the electronicdocument; detect a first horizontal gesture on the touch-sensitivesurface; in response to a determination that the first horizontalgesture satisfies a first set of one or more predefined conditions:translate the electronic document on the display in accordance with adirection of the first horizontal gesture, and maintain the insertionmarker at the first position in the text; and, in response to adetermination that the first horizontal gesture satisfies a second setof one or more predefined conditions that is distinct from the first setof one or more predefined conditions, move the insertion marker by onecharacter in the text from the first position to a second position inthe text in accordance with the direction of the first horizontalgesture.

In accordance with some embodiments, a graphical user interface on anelectronic device with a display, a touch-sensitive surface, a memory,and one or more processors to execute one or more programs stored in thememory includes text of an electronic document and an insertion markerat a first position in the text of the electronic document. A firsthorizontal gesture is detected on the touch-sensitive surface. Inresponse to a determination that the first horizontal gesture satisfiesa first set of one or more predefined conditions, the electronicdocument is translated on the display in accordance with a direction ofthe first horizontal gesture, and the insertion marker is maintained atthe first position in the text. In response to a determination that thefirst horizontal gesture satisfies a second set of one or morepredefined conditions that is distinct from the first set of one or morepredefined conditions, the insertion marker is moved by one character inthe text from the first position to a second position in the text inaccordance with the direction of the first horizontal gesture.

In accordance with some embodiments, an electronic device includes: adisplay; a touch-sensitive surface; means for displaying text of anelectronic document on the display; means for displaying an insertionmarker at a first position in the text of the electronic document; meansfor detecting a first horizontal gesture on the touch-sensitive surface;in response to a determination that the first horizontal gesturesatisfies a first set of one or more predefined conditions, means fortranslating the electronic document on the display in accordance with adirection of the first horizontal gesture, and means for maintaining theinsertion marker at the first position in the text; and, in response toa determination that the first horizontal gesture satisfies a second setof one or more predefined conditions that is distinct from the first setof one or more predefined conditions, means for moving the insertionmarker by one character in the text from the first position to a secondposition in the text in accordance with the direction of the firsthorizontal gesture.

In accordance with some embodiments, an information processing apparatusfor use in an electronic device with a display and a touch-sensitivesurface includes: means for displaying text of an electronic document onthe display; means for displaying an insertion marker at a firstposition in the text of the electronic document; means for detecting afirst horizontal gesture on the touch-sensitive surface; in response toa determination that the first horizontal gesture satisfies a first setof one or more predefined conditions, means for translating theelectronic document on the display in accordance with a direction of thefirst horizontal gesture, and means for maintaining the insertion markerat the first position in the text; and, in response to a determinationthat the first horizontal gesture satisfies a second set of one or morepredefined conditions that is distinct from the first set of one or morepredefined conditions, means for moving the insertion marker by onecharacter in the text from the first position to a second position inthe text in accordance with the direction of the first horizontalgesture.

In accordance with some embodiments, an electronic device includes adisplay unit configured to display text of an electronic document and aninsertion marker at a first position in the text of the electronicdocument, a touch-sensitive surface unit configured to receive gestures,and a processing unit coupled to the display unit and thetouch-sensitive surface unit. The processing unit is configured todetect a first horizontal gesture on the touch-sensitive surface unit;in response to a determination that the first horizontal gesturesatisfies a first set of one or more predefined conditions, translatethe electronic document on the display unit in accordance with adirection of the first horizontal gesture, and maintain the insertionmarker at the first position in the text; and, in response to adetermination that the first horizontal gesture satisfies a second setof one or more predefined conditions that is distinct from the first setof one or more predefined conditions, move the insertion marker by onecharacter in the text from the first position to a second position inthe text in accordance with the direction of the first horizontalgesture.

Thus, electronic devices with displays and touch-sensitive surfaces areprovided with faster, more efficient methods and interfaces fornavigating and editing text, thereby increasing the effectiveness,efficiency, and user satisfaction with such devices. Such methods andinterfaces may complement or replace conventional methods for navigatingand editing text via touch-sensitive surfaces.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the aforementioned embodiments of theinvention as well as additional embodiments thereof, reference should bemade to the Description of Embodiments below, in conjunction with thefollowing drawings in which like reference numerals refer tocorresponding parts throughout the figures.

FIG. 1A is a block diagram illustrating a portable multifunction devicewith a touch-sensitive display in accordance with some embodiments.

FIG. 1B is a block diagram illustrating exemplary components for eventhandling in accordance with some embodiments.

FIG. 2 illustrates a portable multifunction device having a touch screenin accordance with some embodiments.

FIG. 3 is a block diagram of an exemplary multifunction device with adisplay and a touch-sensitive surface in accordance with someembodiments.

FIG. 4A illustrates an exemplary user interface for a menu ofapplications on a portable multifunction device in accordance with someembodiments.

FIG. 4B illustrates an exemplary user interface for a multifunctiondevice with a touch-sensitive surface that is separate from the displayin accordance with some embodiments.

FIGS. 5A-5P illustrate exemplary user interfaces for navigating andediting text via a touch-sensitive surface in accordance with someembodiments.

FIGS. 6A-6F are flow diagrams illustrating a method of navigating andediting text via a touch-sensitive surface in accordance with someembodiments.

FIG. 7 is a functional block diagram of an electronic device inaccordance with some embodiments.

DESCRIPTION OF EMBODIMENTS

Many electronic devices with touch-sensitive surfaces includeapplications with document text editing capabilities. A user often needsto scroll or translate an electronic document to text that needs to beedited. The user also needs to position or reposition an insertionmarker in the text to be edited and then input additional text (e.g.,via a keyboard). These document navigation and editing operations aretypically performed numerous times while working on an electronicdocument. Existing methods typically position an insertion marker bydragging the insertion marker in accordance with a finger being movedacross a touch screen, which requires good hand-eye coordination and asteady finger to correctly position the insertion marker at the desiredlocation. In addition, the heuristics currently used to determinewhether a finger gesture is trying to reposition the insertion marker(without moving the document) or whether the finger gesture is trying tomove the entire document (without repositioning the insertion marker)make existing methods for repositioning the insertion marker slow andtedious.

The devices and methods described below overcome these problems by usingquick finger swipe gestures to move an insertion marker by predefinedamounts (e.g., move by one character, one word, one sentence, one line,or one paragraph), along with improved heuristics for disambiguatingwhether the gesture is meant to reposition the insertion marker ortranslate the electronic document.

For example, when the user performs, a horizontal swipe gesture, thedevice repositions the insertion marker if a quick swipe is detected(e.g., based on an initial velocity of the gesture), but translates thedocument if a slower, more deliberate swipe gesture is detected. If thegesture is determined to be a gesture to move the insertion marker, theinsertion marker typically moves in the direction of the gesture by anamount based on the number of fingers in the gesture. For example, asingle-finger horizontal swipe gesture moves the insertion marker by onecharacter, a two-finger horizontal swipe gesture moves the insertionmarker by a word, and a three-finger horizontal swipe gesture moves theinsertion marker to the beginning/end of the current line of text.

Thus, fast imprecise finger swipe gestures can be used to precisely movean insertion marker by a desired amount, while slower, more deliberategestures can be used to navigate (e.g., scroll or translate) thedocument. This makes navigating and editing text via a touch-sensitivesurface faster and more efficient.

Below, FIGS. 1A-1B, 2, 3, and 7 provide a description of exemplarydevices. FIGS. 4A-4B and 5A-5P illustrate exemplary user interfaces fornavigating and editing text via a touch-sensitive surface. FIGS. 6A-6Fare flow diagrams illustrating a method of navigating and editing textvia a touch-sensitive surface. The user interfaces in FIGS. 5A-5P areused to illustrate the processes in FIGS. 6A-6F.

Exemplary Devices

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the present invention. However, it will beapparent to one of ordinary skill in the art that the present inventionmay be practiced without these specific details. In other instances,well-known methods, procedures, components, circuits, and networks havenot been described in detail so as not to unnecessarily obscure aspectsof the embodiments.

It will also be understood that, although the terms first, second, etc.may be used herein to describe various elements, these elements shouldnot be limited by these terms. These terms are only used to distinguishone element from another. For example, a first contact could be termed asecond contact, and, similarly, a second contact could be termed a firstcontact, without departing from the scope of the present invention. Thefirst contact and the second contact are both contacts, but they are notthe same contact.

The terminology used in the description of the invention herein is forthe purpose of describing particular embodiments only and is notintended to be limiting of the invention. As used in the description ofthe invention and the appended claims, the singular forms “a”, “an” and“the” are intended to include the plural forms as well, unless thecontext clearly indicates otherwise. It will also be understood that theterm “and/or” as used herein refers to and encompasses any and allpossible combinations of one or more of the associated listed items. Itwill be further understood that the terms “includes,” “including,”“comprises,” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

As used herein, the term “if’ may be construed to mean “when” or “upon”or “in response to determining” or “in response to detecting,” dependingon the context. Similarly, the phrase “if it is determined” or “if [astated condition or event] is detected” may be construed to mean “upondetermining” or “in response to determining” or “upon detecting [thestated condition or event]” or “in response to detecting [the statedcondition or event],” depending on the context.

Embodiments of electronic devices, user interfaces for such devices, andassociated processes for using such devices are described. In someembodiments, the device is a portable communications device, such as amobile telephone, that also contains other functions, such as PDA and/ormusic player functions. Exemplary embodiments of portable multifunctiondevices include, without limitation, the iPhone®, iPod Touch®, and iPad®devices from Apple Inc. of Cupertino, Calif. Other portable electronicdevices, such as laptops or tablet computers with touch-sensitivesurfaces (e.g., touch screen displays and/or touch pads), may also beused. It should also be understood that, in some embodiments, the deviceis not a portable communications device, but is a desktop computer witha touch-sensitive surface (e.g., a touch screen display and/or a touchpad).

In the discussion that follows, an electronic device that includes adisplay and a touch-sensitive surface is described. It should beunderstood, however, that the electronic device may include one or moreother physical user-interface devices, such as a physical keyboard, amouse and/or a joystick.

The device typically supports a variety of applications, such as one ormore of the following: a drawing application, a presentationapplication, a word processing application, a website creationapplication, a disk authoring application, a spreadsheet application, agaming application, a telephone application, a video conferencingapplication, an e-mail application, an instant messaging application, aworkout support application, a photo management application, a digitalcamera application, a digital video camera application, a web browsingapplication, a digital music player application, and/or a digital videoplayer application.

The various applications that may be executed on the device may use atleast one common physical user-interface device, such as thetouch-sensitive surface. One or more functions of the touch-sensitivesurface as well as corresponding information displayed on the device maybe adjusted and/or varied from one application to the next and/or withina respective application. In this way, a common physical architecture(such as the touch-sensitive surface) of the device may support thevariety of applications with user interfaces that are intuitive andtransparent to the user.

Attention is now directed toward embodiments of portable devices withtouch-sensitive displays. FIG. 1A is a block diagram illustratingportable multifunction device 100 with touch-sensitive displays 112 inaccordance with some embodiments. Touch-sensitive display 112 issometimes called a “touch screen” for convenience, and may also be knownas or called a touch-sensitive display system. Device 100 may includememory 102 (which may include one or more computer readable storagemediums), memory controller 122, one or more processing units (CPU's)120, peripherals interface 118, RF circuitry 108, audio circuitry 110,speaker 111, microphone 113, input/output (I/O) subsystem 106, otherinput or control devices 116, and external port 124. Device 100 mayinclude one or more optical sensors 164. These components maycommunicate over one or more communication buses or signal lines 103.

It should be appreciated that device 100 is only one example of aportable multifunction device, and that device 100 may have more orfewer components than shown, may combine two or more components, or mayhave a different configuration or arrangement of the components. Thevarious components shown in FIG. 1A may be implemented in hardware,software, or a combination of both hardware and software, including oneor more signal processing and/or application specific integratedcircuits.

Memory 102 may include high-speed random access memory and may alsoinclude non-volatile memory, such as one or more magnetic disk storagedevices, flash memory devices, or other non-volatile solid-state memorydevices. Access to memory 102 by other components of device 100, such asCPU 120 and the peripherals interface 118, may be controlled by memorycontroller 122.

Peripherals interface 118 can be used to couple input and outputperipherals of the device to CPU 120 and memory 102. The one or moreprocessors 120 run or execute various software programs and/or sets ofinstructions stored in memory 102 to perform various functions fordevice 100 and to process data.

In some embodiments, peripherals interface 118, CPU 120, and memorycontroller 122 may be implemented on a single chip, such as chip 104. Insome other embodiments, they may be implemented on separate chips.

RF (radio frequency) circuitry 108 receives and sends RF signals, alsocalled electromagnetic signals. RF circuitry 108 converts electricalsignals to/from electromagnetic signals and communicates withcommunications networks and other communications devices via theelectromagnetic signals. RF circuitry 108 may include well-knowncircuitry for performing these functions, including but not limited toan antenna system, an RF transceiver, one or more amplifiers, a tuner,one or more oscillators, a digital signal processor, a CODEC chipset, asubscriber identity module (SIM) card, memory, and so forth. RFcircuitry 108 may communicate with networks, such as the Internet, alsoreferred to as the World Wide Web (WWW), an intranet and/or a wirelessnetwork, such as a cellular telephone network, a wireless local areanetwork (LAN) and/or a metropolitan area network (MAN), and otherdevices by wireless communication. The wireless communication may useany of a plurality of communications standards, protocols andtechnologies, including but not limited to Global System for MobileCommunications (GSM), Enhanced Data GSM Environment (EDGE), high-speeddownlink packet access (HSDPA), high-speed uplink packet access (HSUPA),wideband code division multiple access (W-CDMA), code division multipleaccess (CDMA), time division multiple access (TDMA), Bluetooth, WirelessFidelity (Wi-Fi) (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g and/orIEEE 802.11n), voice over Internet Protocol (VoIP), Wi-MAX, a protocolfor e-mail (e.g., Internet message access protocol (IMAP) and/or postoffice protocol (POP)), instant messaging (e.g., extensible messagingand presence protocol (XMPP), Session Initiation Protocol for InstantMessaging and Presence Leveraging Extensions (SIMPLE), Instant Messagingand Presence Service (IMPS)), and/or Short Message Service (SMS), or anyother suitable communication protocol, including communication protocolsnot yet developed as of the filing date of this document.

Audio circuitry 110, speaker 111, and microphone 113 provide an audiointerface between a user and device 100. Audio circuitry 110 receivesaudio data from peripherals interface 118, converts the audio data to anelectrical signal, and transmits the electrical signal to speaker 111.Speaker 111 converts the electrical signal to human-audible sound waves.Audio circuitry 110 also receives electrical signals converted bymicrophone 113 from sound waves. Audio circuitry 110 converts theelectrical signal to audio data and transmits the audio data toperipherals interface 118 for processing. Audio data may be retrievedfrom and/or transmitted to memory 102 and/or RF circuitry 108 byperipherals interface 118. In some embodiments, audio circuitry 110 alsoincludes a headset jack (e.g., 212, FIG. 2). The headset jack providesan interface between audio circuitry 110 and removable audioinput/output peripherals, such as output-only headphones or a headsetwith both output (e.g., a headphone for one or both ears) and input(e.g., a microphone).

I/O subsystem 106 couples input/output peripherals on device 100, suchas touch screen 112 and other input control devices 116, to peripheralsinterface 118. I/O subsystem 106 may include display controller 156 andone or more input controllers 160 for other input or control devices.The one or more input controllers 160 receive/send electrical signalsfrom/to other input or control devices 116. The other input controldevices 116 may include physical buttons (e.g., push buttons, rockerbuttons, etc.), dials, slider switches, joysticks, click wheels, and soforth. In some alternate embodiments, input controller(s) 160 may becoupled to any (or none) of the following: a keyboard, infrared port,USB port, and a pointer device such as a mouse. The one or more buttons(e.g., 208, FIG. 2) may include an up/down button for volume control ofspeaker 111 and/or microphone 113. The one or more buttons may include apush button (e.g., 206, FIG. 2).

Touch-sensitive display 112 provides an input interface and an outputinterface between the device and a user. Display controller 156 receivesand/or sends electrical signals from/to touch screen 112. Touch screen112 displays visual output to the user. The visual output may includegraphics, text, icons, video, and any combination thereof (collectivelytermed “graphics”). In some embodiments, some or all of the visualoutput may correspond to user-interface objects.

Touch screen 112 has a touch-sensitive surface, sensor or set of sensorsthat accepts input from the user based on haptic and/or tactile contact.Touch screen 112 and display controller 156 (along with any associatedmodules and/or sets of instructions in memory 102) detect contact (andany movement or breaking of the contact) on touch screen 112 andconverts the detected contact into interaction with user-interfaceobjects (e.g., one or more soft keys, icons, web pages or images) thatare displayed on touch screen 112. In an exemplary embodiment, a pointof contact between touch screen 112 and the user corresponds to a fingerof the user.

Touch screen 112 may use LCD (liquid crystal display) technology, LPD(light emitting polymer display) technology, or LED (light emittingdiode) technology, although other display technologies may be used inother embodiments. Touch screen 112 and display controller 156 maydetect contact and any movement or breaking thereof using any of aplurality of touch sensing technologies now known or later developed,including but not limited to capacitive, resistive, infrared, andsurface acoustic wave technologies, as well as other proximity sensorarrays or other elements for determining one or more points of contactwith touch screen 112. In an exemplary embodiment, projected mutualcapacitance sensing technology is used, such as that found in theiPhone®, iPod Touch®, and iPad® from Apple Inc. of Cupertino, Calif.

Touch screen 112 may have a video resolution in excess of 100 dpi. Insome embodiments, the touch screen has a video resolution ofapproximately 160 dpi. The user may make contact with touch screen 112using any suitable object or appendage, such as a stylus, a finger, andso forth. In some embodiments, the user interface is designed to workprimarily with finger-based contacts and gestures, which can be lessprecise than stylus-based input due to the larger area of contact of afinger on the touch screen. In some embodiments, the device translatesthe rough finger-based input into a precise pointer/cursor position orcommand for performing the actions desired by the user.

In some embodiments, in addition to the touch screen, device 100 mayinclude a touchpad (not shown) for activating or deactivating particularfunctions. In some embodiments, the touchpad is a touch-sensitive areaof the device that, unlike the touch screen, does not display visualoutput. The touchpad may be a touch-sensitive surface that is separatefrom touch screen 112 or an extension of the touch-sensitive surfaceformed by the touch screen.

Device 100 also includes power system 162 for powering the variouscomponents. Power system 162 may include a power management system, oneor more power sources (e.g., battery, alternating current (AC)), arecharging system, a power failure detection circuit, a power converteror inverter, a power status indicator (e.g., a light-emitting diode(LED)) and any other components associated with the generation,management and distribution of power in portable devices.

Device 100 may also include one or more optical sensors 164. FIG. 1Ashows an optical sensor coupled to optical sensor controller 158 in I/Osubsystem 106. Optical sensor 164 may include charge-coupled device(CCD) or complementary metal-oxide semiconductor (CMOS)phototransistors. Optical sensor 164 receives light from theenvironment, projected through one or more lens, and converts the lightto data representing an image. In conjunction with imaging module 143(also called a camera module), optical sensor 164 may capture stillimages or video. In some embodiments, an optical sensor is located onthe back of device 100, opposite touch screen display 112 on the frontof the device, so that the touch screen display may be used as aviewfinder for still and/or video image acquisition. In someembodiments, another optical sensor is located on the front of thedevice so that the user's image may be obtained for videoconferencingwhile the user views the other video conference participants on thetouch screen display.

Device 100 may also include one or more proximity sensors 166. FIG. 1Ashows proximity sensor 166 coupled to peripherals interface 118.Alternately, proximity sensor 166 may be coupled to input controller 160in I/O subsystem 106. In some embodiments, the proximity sensor turnsoff and disables touch screen 112 when the multifunction device isplaced near the user's ear (e.g., when the user is making a phone call).

Device 100 may also include one or more accelerometers 168. FIG. 1Ashows accelerometer 168 coupled to peripherals interface 118.Alternately, accelerometer 168 may be coupled to an input controller 160in I/O subsystem 106. In some embodiments, information is displayed onthe touch screen display in a portrait view or a landscape view based onan analysis of data received from the one or more accelerometers. Device100 optionally includes, in addition to accelerometer(s) 168, amagnetometer (not shown) and a GPS (or GLONASS or other globalnavigation system) receiver (not shown) for obtaining informationconcerning the location and orientation (e.g., portrait or landscape) ofdevice 100.

In some embodiments, the software components stored in memory 102include operating system 126, communication module (or set ofinstructions) 128, contact/motion module (or set of instructions) 130,graphics module (or set of instructions) 132, text input module (or setof instructions) 134, Global Positioning System (GPS) module (or set ofinstructions) 135, and applications (or sets of instructions) 136.Furthermore, in some embodiments memory 102 stores device/globalinternal state 157, as shown in FIGS. 1A and 3. Device/global internalstate 157 includes one or more of: active application state, indicatingwhich applications, if any, are currently active; display state,indicating what applications, views or other information occupy variousregions of touch screen display 112; sensor state, including informationobtained from the device's various sensors and input control devices116; and location information concerning the device's location and/orattitude.

Operating system 126 (e.g., Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, oran embedded operating system such as VxWorks) includes various softwarecomponents and/or drivers for controlling and managing general systemtasks (e.g., memory management, storage device control, powermanagement, etc.) and facilitates communication between various hardwareand software components.

Communication module 128 facilitates communication with other devicesover one or more external ports 124 and also includes various softwarecomponents for handling data received by RF circuitry 108 and/orexternal port 124. External port 124 (e.g., Universal Serial Bus (USB),FIREWIRE, etc.) is adapted for coupling directly to other devices orindirectly over a network (e.g., the Internet, wireless LAN, etc.). Insome embodiments, the external port is a multi-pin (e.g., 30-pin)connector that is the same as, or similar to and/or compatible with the30-pin connector used on iPod (trademark of Apple Inc.) devices.

Contact/motion module 130 may detect contact with touch screen 112 (inconjunction with display controller 156) and other touch sensitivedevices (e.g., a touchpad or physical click wheel). Contact/motionmodule 130 includes various software components for performing variousoperations related to detection of contact, such as determining ifcontact has occurred (e.g., detecting a finger-down event), determiningif there is movement of the contact and tracking the movement across thetouch-sensitive surface (e.g., detecting one or more finger-draggingevents), and determining if the contact has ceased (e.g., detecting afinger-up event or a break in contact). Contact/motion module 130receives contact data from the touch-sensitive surface. Determiningmovement of the point of contact, which is represented by a series ofcontact data, may include determining speed (magnitude), velocity(magnitude and direction), and/or an acceleration (a change in magnitudeand/or direction) of the point of contact. These operations may beapplied to single contacts (e.g., one finger contacts) or to multiplesimultaneous contacts (e.g., “multitouch”/multiple finger contacts). Insome embodiments, contact/motion module 130 and display controller 156detect contact on a touchpad.

Contact/motion module 130 may detect a gesture input by a user.Different gestures on the touch-sensitive surface have different contactpatterns. Thus, a gesture may be detected by detecting a particularcontact pattern. For example, detecting a finger tap gesture includesdetecting a finger-down event followed by detecting a finger-up (liftoff) event at the same position (or substantially the same position) asthe finger-down event (e.g., at the position of an icon). As anotherexample, detecting a finger swipe gesture on the touch-sensitive surfaceincludes detecting a finger-down event followed by detecting one or morefinger-dragging events, and subsequently followed by detecting afinger-up (lift off) event.

Graphics module 132 includes various known software components forrendering and displaying graphics on touch screen 112 or other display,including components for changing the intensity of graphics that aredisplayed. As used herein, the term “graphics” includes any object thatcan be displayed to a user, including without limitation text, webpages, icons (such as user-interface objects including soft keys),digital images, videos, animations and the like.

In some embodiments, graphics module 132 stores data representinggraphics to be used. Each graphic may be assigned a corresponding code.Graphics module 132 receives, from applications etc., one or more codesspecifying graphics to be displayed along with, if necessary, coordinatedata and other graphic property data, and then generates screen imagedata to output to display controller 156.

Text input module 134, which may be a component of graphics module 132,provides soft keyboards for entering text in various applications (e.g.,contacts 137, e-mail 140, IM 141, browser 147, and any other applicationthat needs text input).

GPS module 135 determines the location of the device and provides thisinformation for use in various applications (e.g., to telephone 138 foruse in location-based dialing, to camera 143 as picture/video metadata,and to applications that provide location-based services such as weatherwidgets, local yellow page widgets, and map/navigation widgets).

Applications 136 may include the following modules (or sets ofinstructions), or a subset or superset thereof:

-   -   contacts module 137 (sometimes called an address book or contact        list);    -   telephone module 138;    -   video conferencing module 139;    -   e-mail client module 140;    -   instant messaging (IM) module 141;    -   workout support module 142;    -   camera module 143 for still and/or video images;    -   image management module 144;    -   browser module 147;    -   calendar module 148;    -   widget modules 149, which may include one or more of: weather        widget 149-1, stocks widget 149-2, calculator widget 149-3,        alarm clock widget 149-4, dictionary widget 149-5, and other        widgets obtained by the user, as well as user-created widgets        149-6;    -   widget creator module 150 for making user-created widgets 149-6;    -   search module 151;    -   video and music player module 152, which may be made up of a        video player module and a music player module;    -   notes module 153;    -   map module 154; and/or    -   online video module 155.

Examples of other applications 136 that may be stored in memory 102include other word processing applications (e.g., word processing module384), other image editing applications, drawing applications (e.g.,drawing module 380), presentation applications (presentation module382), spreadsheet applications (e.g., spreadsheet module 390), websitecreation applications (e.g., website creation module 386), JAVA-enabledapplications, encryption, digital rights management, voice recognition,and voice replication.

In conjunction with touch screen 112, display controller 156, contactmodule 130, graphics module 132, and text input module 134, contactsmodule 137 may be used to manage an address book or contact list (e.g.,stored in application internal state 192 of contacts module 137 inmemory 102 or memory 370), including: adding name(s) to the addressbook; deleting name(s) from the address book; associating telephonenumber(s), e-mail address(es), physical address(es) or other informationwith a name; associating an image with a name; categorizing and sortingnames; providing telephone numbers or e-mail addresses to initiateand/or facilitate communications by telephone 138, video conference 139,e-mail 140, or IM 141; and so forth.

In conjunction with RF circuitry 108, audio circuitry 110, speaker 111,microphone 113, touch screen 112, display controller 156, contact module130, graphics module 132, and text input module 134, telephone module138 may be used to enter a sequence of characters corresponding to atelephone number, access one or more telephone numbers in address book137, modify a telephone number that has been entered, dial a respectivetelephone number, conduct a conversation and disconnect or hang up whenthe conversation is completed. As noted above, the wirelesscommunication may use any of a plurality of communications standards,protocols and technologies.

In conjunction with RF circuitry 108, audio circuitry 110, speaker 111,microphone 113, touch screen 112, display controller 156, optical sensor164, optical sensor controller 158, contact module 130, graphics module132, text input module 134, contact list 137, and telephone module 138,videoconferencing module 139 includes executable instructions toinitiate, conduct, and terminate a video conference between a user andone or more other participants in accordance with user instructions.

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact module 130, graphics module 132, and text inputmodule 134, e-mail client module 140 includes executable instructions tocreate, send, receive, and manage e-mail in response to userinstructions. In conjunction with image management module 144, e-mailclient module 140 makes it very easy to create and send e-mails withstill or video images taken with camera module 143.

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact module 130, graphics module 132, and text inputmodule 134, the instant messaging module 141 includes executableinstructions to enter a sequence of characters corresponding to aninstant message, to modify previously entered characters, to transmit arespective instant message (for example, using a Short Message Service(SMS) or Multimedia Message Service (MMS) protocol for telephony-basedinstant messages or using XMPP, SIMPLE, or IMPS for Internet-basedinstant messages), to receive instant messages and to view receivedinstant messages. In some embodiments, transmitted and/or receivedinstant messages may include graphics, photos, audio files, video filesand/or other attachments as are supported in a MMS and/or an EnhancedMessaging Service (EMS). As used herein, “instant messaging” refers toboth telephony-based messages (e.g., messages sent using SMS or MMS) andInternet-based messages (e.g., messages sent using XMPP, SIMPLE, orIMPS).

In conjunction with RF circuitry 108, touch screen 112, displaycontroller 156, contact module 130, graphics module 132, text inputmodule 134, GPS module 135, map module 154, and music player module 146,workout support module 142 includes executable instructions to createworkouts (e.g., with time, distance, and/or calorie burning goals);communicate with workout sensors (sports devices); receive workoutsensor data; calibrate sensors used to monitor a workout; select andplay music for a workout; and display, store and transmit workout data.

In conjunction with touch screen 112, display controller 156, opticalsensor(s) 164, optical sensor controller 158, contact module 130,graphics module 132, and image management module 144, camera module 143includes executable instructions to capture still images or video(including a video stream) and store them into memory 102, modifycharacteristics of a still image or video, or delete a still image orvideo from memory 102.

In conjunction with touch screen 112, display controller 156, contactmodule 130, graphics module 132, text input module 134, and cameramodule 143, image management module 144 includes executable instructionsto arrange, modify (e.g., edit), or otherwise manipulate, label, delete,present (e.g., in a digital slide show or album), and store still and/orvideo images.

In conjunction with RF circuitry 108, touch screen 112, display systemcontroller 156, contact module 130, graphics module 132, and text inputmodule 134, browser module 147 includes executable instructions tobrowse the Internet in accordance with user instructions, includingsearching, linking to, receiving, and displaying web pages or portionsthereof, as well as attachments and other files linked to web pages.

In conjunction with RF circuitry 108, touch screen 112, display systemcontroller 156, contact module 130, graphics module 132, text inputmodule 134, e-mail client module 140, and browser module 147, calendarmodule 148 includes executable instructions to create, display, modify,and store calendars and data associated with calendars (e.g., calendarentries, to do lists, etc.) in accordance with user instructions.

In conjunction with RF circuitry 108, touch screen 112, display systemcontroller 156, contact module 130, graphics module 132, text inputmodule 134, and browser module 147, widget modules 149 aremini-applications that may be downloaded and used by a user (e.g.,weather widget 149-1, stocks widget 149-2, calculator widget 149-3,alarm clock widget 149-4, and dictionary widget 149-5) or created by theuser (e.g., user-created widget 149-6). In some embodiments, a widgetincludes an HTML (Hypertext Markup Language) file, a CSS (CascadingStyle Sheets) file, and a JavaScript file. In some embodiments, a widgetincludes an XML (Extensible Markup Language) file and a JavaScript file(e.g., Yahoo! Widgets).

In conjunction with RF circuitry 108, touch screen 112, display systemcontroller 156, contact module 130, graphics module 132, text inputmodule 134, and browser module 147, the widget creator module 150 may beused by a user to create widgets (e.g., turning a user-specified portionof a web page into a widget).

In conjunction with touch screen 112, display system controller 156,contact module 130, graphics module 132, and text input module 134,search module 151 includes executable instructions to search for text,music, sound, image, video, and/or other files in memory 102 that matchone or more search criteria (e.g., one or more user-specified searchterms) in accordance with user instructions.

In conjunction with touch screen 112, display system controller 156,contact module 130, graphics module 132, audio circuitry 110, speaker111, RF circuitry 108, and browser module 147, video and music playermodule 152 includes executable instructions that allow the user todownload and play back recorded music and other sound files stored inone or more file formats, such as MP3 or AAC files, and executableinstructions to display, present or otherwise play back videos (e.g., ontouch screen 112 or on an external, connected display via external port124). In some embodiments, device 100 may include the functionality ofan MP3 player, such as an iPod (trademark of Apple Inc.).

In conjunction with touch screen 112, display controller 156, contactmodule 130, graphics module 132, and text input module 134, notes module153 includes executable instructions to create and manage notes, to dolists, and the like in accordance with user instructions.

In conjunction with RF circuitry 108, touch screen 112, display systemcontroller 156, contact module 130, graphics module 132, text inputmodule 134, GPS module 135, and browser module 147, map module 154 maybe used to receive, display, modify, and store maps and data associatedwith maps (e.g., driving directions; data on stores and other points ofinterest at or near a particular location; and other location-baseddata) in accordance with user instructions.

In conjunction with touch screen 112, display system controller 156,contact module 130, graphics module 132, audio circuitry 110, speaker111, RF circuitry 108, text input module 134, e-mail client module 140,and browser module 147, online video module 155 includes instructionsthat allow the user to access, browse, receive (e.g., by streamingand/or download), play back (e.g., on the touch screen or on anexternal, connected display via external port 124), send an e-mail witha link to a particular online video, and otherwise manage online videosin one or more file formats, such as H.264. In some embodiments, instantmessaging module 141, rather than e-mail client module 140, is used tosend a link to a particular online video.

Each of the above identified modules and applications correspond to aset of executable instructions for performing one or more functionsdescribed above and the methods described in this application (e.g., thecomputer-implemented methods and other information processing methodsdescribed herein). These modules (i.e., sets of instructions) need notbe implemented as separate software programs, procedures or modules, andthus various subsets of these modules may be combined or otherwisere-arranged in various embodiments. In some embodiments, memory 102 maystore a subset of the modules and data structures identified above.Furthermore, memory 102 may store additional modules and data structuresnot described above.

In some embodiments, device 100 is a device where operation of apredefined set of functions on the device is performed exclusivelythrough a touch screen and/or a touchpad. By using a touch screen and/ora touchpad as the primary input control device for operation of device100, the number of physical input control devices (such as push buttons,dials, and the like) on device 100 may be reduced.

The predefined set of functions that may be performed exclusivelythrough a touch screen and/or a touchpad include navigation between userinterfaces. In some embodiments, the touchpad, when touched by the user,navigates device 100 to a main, home, or root menu from any userinterface that may be displayed on device 100. In such embodiments, thetouchpad may be referred to as a “menu button.” In some otherembodiments, the menu button may be a physical push button or otherphysical input control device instead of a touchpad.

FIG. 1B is a block diagram illustrating exemplary components for eventhandling in accordance with some embodiments. In some embodiments,memory 102 (in FIGS. 1A and 1B) or 370 (FIG. 3) includes event sorter170 (e.g., in operating system 126) and a respective application 136-1(e.g., any of the aforementioned applications 137-151, 155, 380-390).

Event sorter 170 receives event information and determines theapplication 136-1 and application view 191 of application 136-1 to whichto deliver the event information. Event sorter 170 includes eventmonitor 171 and event dispatcher module 174. In some embodiments,application 136-1 includes application internal state 192, whichindicates the current application view(s) displayed on touch sensitivedisplay 112 when the application is active or executing. In someembodiments, device/global internal state 157 is used by event sorter170 to determine which application(s) is (are) currently active, andapplication internal state 192 is used by event sorter 170 to determineapplication views 191 to which to deliver event information.

In some embodiments, application internal state 192 includes additionalinformation, such as one or more of: resume information to be used whenapplication 136-1 resumes execution, user interface state informationthat indicates information being displayed or that is ready for displayby application 136-1, a state queue for enabling the user to go back toa prior state or view of application 136-1, and a redo/undo queue ofprevious actions taken by the user.

Event monitor 171 receives event information from peripherals interface118. Event information includes information about a sub-event (e.g., auser touch on touch-sensitive display 112, as part of a multi-touchgesture). Peripherals interface 118 transmits information it receivesfrom I/O subsystem 106 or a sensor, such as proximity sensor 166,accelerometer(s) 168, and/or microphone 113 (through audio circuitry110). Information that peripherals interface 118 receives from I/Osubsystem 106 includes information from touch-sensitive display 112 or atouch-sensitive surface.

In some embodiments, event monitor 171 sends requests to the peripheralsinterface 118 at predetermined intervals. In response, peripheralsinterface 118 transmits event information. In other embodiments,peripheral interface 118 transmits event information only when there isa significant event (e.g., receiving an input above a predeterminednoise threshold and/or for more than a predetermined duration).

In some embodiments, event sorter 170 also includes a hit viewdetermination module 172 and/or an active event recognizer determinationmodule 173.

Hit view determination module 172 provides software procedures fordetermining where a sub-event has taken place within one or more views,when touch sensitive display 112 displays more than one view. Views aremade up of controls and other elements that a user can see on thedisplay.

Another aspect of the user interface associated with an application is aset of views, sometimes herein called application views or userinterface windows, in which information is displayed and touch-basedgestures occur. The application views (of a respective application) inwhich a touch is detected may correspond to programmatic levels within aprogrammatic or view hierarchy of the application. For example, thelowest level view in which a touch is detected may be called the hitview, and the set of events that are recognized as proper inputs may bedetermined based, at least in part, on the hit view of the initial touchthat begins a touch-based gesture.

Hit view determination module 172 receives information related tosub-events of a touch-based gesture. When an application has multipleviews organized in a hierarchy, hit view determination module 172identifies a hit view as the lowest view in the hierarchy which shouldhandle the sub-event. In most circumstances, the hit view is the lowestlevel view in which an initiating sub-event occurs (i.e., the firstsub-event in the sequence of sub-events that form an event or potentialevent). Once the hit view is identified by the hit view determinationmodule, the hit view typically receives all sub-events related to thesame touch or input source for which it was identified as the hit view.

Active event recognizer determination module 173 determines which viewor views within a view hierarchy should receive a particular sequence ofsub-events. In some embodiments, active event recognizer determinationmodule 173 determines that only the hit view should receive a particularsequence of sub-events. In other embodiments, active event recognizerdetermination module 173 determines that all views that include thephysical location of a sub-event are actively involved views, andtherefore determines that all actively involved views should receive aparticular sequence of sub-events. In other embodiments, even if touchsub-events were entirely confined to the area associated with oneparticular view, views higher in the hierarchy would still remain asactively involved views.

Event dispatcher module 174 dispatches the event information to an eventrecognizer (e.g., event recognizer 180). In embodiments including activeevent recognizer determination module 173, event dispatcher module 174delivers the event information to an event recognizer determined byactive event recognizer determination module 173. In some embodiments,event dispatcher module 174 stores in an event queue the eventinformation, which is retrieved by a respective event receiver module182.

In some embodiments, operating system 126 includes event sorter 170.Alternatively, application 136-1 includes event sorter 170. In yet otherembodiments, event sorter 170 is a stand-alone module, or a part ofanother module stored in memory 102, such as contact/motion module 130.

In some embodiments, application 136-1 includes a plurality of eventhandlers 190 and one or more application views 191, each of whichincludes instructions for handling touch events that occur within arespective view of the application's user interface. Each applicationview 191 of the application 136-1 includes one or more event recognizers180. Typically, a respective application view 191 includes a pluralityof event recognizers 180. In other embodiments, one or more of eventrecognizers 180 are part of a separate module, such as a user interfacekit (not shown) or a higher level object from which application 136-1inherits methods and other properties. In some embodiments, a respectiveevent handler 190 includes one or more of: data updater 176, objectupdater 177, GUI updater 178, and/or event data 179 received from eventsorter 170. Event handler 190 may utilize or call data updater 176,object updater 177 or GUI updater 178 to update the application internalstate 192. Alternatively, one or more of the application views 191includes one or more respective event handlers 190. Also, in someembodiments, one or more of data updater 176, object updater 177, andGUI updater 178 are included in a respective application view 191.

A respective event recognizer 180 receives event information (e.g.,event data 179) from event sorter 170, and identifies an event from theevent information. Event recognizer 180 includes event receiver 182 andevent comparator 184. In some embodiments, event recognizer 180 alsoincludes at least a subset of: metadata 183, and event deliveryinstructions 188 (which may include sub-event delivery instructions).

Event receiver 182 receives event information from event sorter 170. Theevent information includes information about a sub-event, for example, atouch or a touch movement. Depending on the sub-event, the eventinformation also includes additional information, such as location ofthe sub-event. When the sub-event concerns motion of a touch the eventinformation may also include speed and direction of the sub-event. Insome embodiments, events include rotation of the device from oneorientation to another (e.g., from a portrait orientation to a landscapeorientation, or vice versa), and the event information includescorresponding information about the current orientation (also calleddevice attitude) of the device.

Event comparator 184 compares the event information to predefined eventor sub-event definitions and, based on the comparison, determines anevent or sub-event, or determines or updates the state of an event orsub-event. In some embodiments, event comparator 184 includes eventdefinitions 186. Event definitions 186 contain definitions of events(e.g., predefined sequences of sub-events), for example, event 1(187-1), event 2 (187-2), and others. In some embodiments, sub-events inan event 187 include, for example, touch begin, touch end, touchmovement, touch cancellation, and multiple touching. In one example, thedefinition for event 1 (187-1) is a double tap on a displayed object.The double tap, for example, comprises a first touch (touch begin) onthe displayed object for a predetermined phase, a first lift-off (touchend) for a predetermined phase, a second touch (touch begin) on thedisplayed object for a predetermined phase, and a second lift-off (touchend) for a predetermined phase. In another example, the definition forevent 2 (187-2) is a dragging on a displayed object. The dragging, forexample, comprises a touch (or contact) on the displayed object for apredetermined phase, a movement of the touch across touch-sensitivedisplay 112, and lift-off of the touch (touch end). In some embodiments,the event also includes information for one or more associated eventhandlers 190.

In some embodiments, event definition 187 includes a definition of anevent for a respective user-interface object. In some embodiments, eventcomparator 184 performs a hit test to determine which user-interfaceobject is associated with a sub-event. For example, in an applicationview in which three user-interface objects are displayed ontouch-sensitive display 112, when a touch is detected on touch-sensitivedisplay 112, event comparator 184 performs a hit test to determine whichof the three user-interface objects is associated with the touch(sub-event). If each displayed object is associated with a respectiveevent handler 190, the event comparator uses the result of the hit testto determine which event handler 190 should be activated. For example,event comparator 184 selects an event handler associated with thesub-event and the object triggering the hit test.

In some embodiments, the definition for a respective event 187 alsoincludes delayed actions that delay delivery of the event informationuntil after it has been determined whether the sequence of sub-eventsdoes or does not correspond to the event recognizer's event type.

When a respective event recognizer 180 determines that the series ofsub-events do not match any of the events in event definitions 186, therespective event recognizer 180 enters an event impossible, eventfailed, or event ended state, after which it disregards subsequentsub-events of the touch-based gesture. In this situation, other eventrecognizers, if any, that remain active for the hit view continue totrack and process sub-events of an ongoing touch-based gesture.

In some embodiments, a respective event recognizer 180 includes metadata183 with configurable properties, flags, and/or lists that indicate howthe event delivery system should perform sub-event delivery to activelyinvolved event recognizers. In some embodiments, metadata 183 includesconfigurable properties, flags, and/or lists that indicate how eventrecognizers may interact with one another. In some embodiments, metadata183 includes configurable properties, flags, and/or lists that indicatewhether sub-events are delivered to varying levels in the view orprogrammatic hierarchy.

In some embodiments, a respective event recognizer 180 activates eventhandler 190 associated with an event when one or more particularsub-events of an event are recognized. In some embodiments, a respectiveevent recognizer 180 delivers event information associated with theevent to event handler 190. Activating an event handler 190 is distinctfrom sending (and deferred sending) sub-events to a respective hit view.In some embodiments, event recognizer 180 throws a flag associated withthe recognized event, and event handler 190 associated with the flagcatches the flag and performs a predefined process.

In some embodiments, event delivery instructions 188 include sub-eventdelivery instructions that deliver event information about a sub-eventwithout activating an event handler. Instead, the sub-event deliveryinstructions deliver event information to event handlers associated withthe series of sub-events or to actively involved views. Event handlersassociated with the series of sub-events or with actively involved viewsreceive the event information and perform a predetermined process.

In some embodiments, data updater 176 creates and updates data used inapplication 136-1. For example, data updater 176 updates the telephonenumber used in contacts module 137, or stores a video file used in videoplayer module 145. In some embodiments, object updater 177 creates andupdates objects used in application 136-1. For example, object updater176 creates a new user-interface object or updates the position of auser-interface object. GUI updater 178 updates the GUI. For example, GUIupdater 178 prepares display information and sends it to graphics module132 for display on a touch-sensitive display.

In some embodiments, event handler(s) 190 includes or has access to dataupdater 176, object updater 177, and GUI updater 178. In someembodiments, data updater 176, object updater 177, and GUI updater 178are included in a single module of a respective application 136-1 orapplication view 191. In other embodiments, they are included in two ormore software modules.

It shall be understood that the foregoing discussion regarding eventhandling of user touches on touch-sensitive displays also applies toother forms of user inputs to operate multifunction devices 100 withinput-devices, not all of which are initiated on touch screens, e.g.,coordinating mouse movement and mouse button presses with or withoutsingle or multiple keyboard presses or holds, user movements taps,drags, scrolls, etc., on touch-pads, pen stylus inputs, movement of thedevice, oral instructions, detected eye movements, biometric inputs,and/or any combination thereof, which may be utilized as inputscorresponding to sub-events which define an event to be recognized.

FIG. 2 illustrates a portable multifunction device 100 having a touchscreen 112 in accordance with some embodiments. The touch screen maydisplay one or more graphics within user interface (UI) 200. In thisembodiment, as well as others described below, a user may select one ormore of the graphics by making a gesture on the graphics, for example,with one or more fingers 202 (not drawn to scale in the figure) or oneor more styluses 203 (not drawn to scale in the figure). In someembodiments, selection of one or more graphics occurs when the userbreaks contact with the one or more graphics. In some embodiments, thegesture may include one or more taps, one or more swipes (from left toright, right to left, upward and/or downward) and/or a rolling of afinger (from right to left, left to right, upward and/or downward) thathas made contact with device 100. In some embodiments, inadvertentcontact with a graphic may not select the graphic. For example, a swipegesture that sweeps over an application icon may not select thecorresponding application when the gesture corresponding to selection isa tap.

Device 100 may also include one or more physical buttons, such as “home”or menu button 204. As described previously, menu button 204 may be usedto navigate to any application 136 in a set of applications that may beexecuted on device 100. Alternatively, in some embodiments, the menubutton is implemented as a soft key in a GUI displayed on touch screen112.

In one embodiment, device 100 includes touch screen 112, menu button204, push button 206 for powering the device on/off and locking thedevice, volume adjustment button(s) 208, Subscriber Identity Module(SIM) card slot 210, head set jack 212, and docking/charging externalport 124. Push button 206 may be used to turn the power on/off on thedevice by depressing the button and holding the button in the depressedstate for a predefined time interval; to lock the device by depressingthe button and releasing the button before the predefined time intervalhas elapsed; and/or to unlock the device or initiate an unlock process.In an alternative embodiment, device 100 also may accept verbal inputfor activation or deactivation of some functions through microphone 113.

FIG. 3 is a block diagram of an exemplary multifunction device with adisplay and a touch-sensitive surface in accordance with someembodiments. Device 300 need not be portable. In some embodiments,device 300 is a laptop computer, a desktop computer, a tablet computer,a multimedia player device, a navigation device, an educational device(such as a child's learning toy), a gaming system, or a control device(e.g., a home or industrial controller). Device 300 typically includesone or more processing units (CPU's) 310, one or more network or othercommunications interfaces 360, memory 370, and one or more communicationbuses 320 for interconnecting these components. Communication buses 320may include circuitry (sometimes called a chipset) that interconnectsand controls communications between system components. Device 300includes input/output (I/O) interface 330 comprising display 340, whichis typically a touch screen display. I/O interface 330 also may includea keyboard and/or mouse (or other pointing device) 350 and touchpad 355.Memory 370 includes high-speed random access memory, such as DRAM, SRAM,DDR RAM or other random access solid state memory devices; and mayinclude non-volatile memory, such as one or more magnetic disk storagedevices, optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. Memory 370 may optionallyinclude one or more storage devices remotely located from CPU(s) 310. Insome embodiments, memory 370 stores programs, modules, and datastructures analogous to the programs, modules, and data structuresstored in memory 102 of portable multifunction device 100 (FIG. 1), or asubset thereof. Furthermore, memory 370 may store additional programs,modules, and data structures not present in memory 102 of portablemultifunction device 100. For example, memory 370 of device 300 maystore drawing module 380, presentation module 382, word processingmodule 384, website creation module 386, disk authoring module 388,and/or spreadsheet module 390, while memory 102 of portablemultifunction device 100 (FIG. 1) may or may not store these modules.

Each of the above identified elements in FIG. 3 may be stored in one ormore of the previously mentioned memory devices. Each of the aboveidentified modules corresponds to a set of instructions for performing afunction described above. The above identified modules or programs(i.e., sets of instructions) need not be implemented as separatesoftware programs, procedures or modules, and thus various subsets ofthese modules may be combined or otherwise re-arranged in variousembodiments. In some embodiments, memory 370 may store a subset of themodules and data structures identified above. Furthermore, memory 370may store additional modules and data structures not described above.

Attention is now directed towards embodiments of user interfaces (“UI”)that may be implemented on portable multifunction device 100.

FIG. 4A illustrates an exemplary user interface for a menu ofapplications on portable multifunction device 100 in accordance withsome embodiments. Similar user interfaces may be implemented on device300. In some embodiments, user interface 400 includes the followingelements, or a subset or superset thereof:

-   -   Signal strength indicator(s) 402 for wireless communication(s),        such as cellular and Wi-Fi signals;    -   Time 404;    -   Bluetooth indicator 405;    -   Battery status indicator 406;    -   Tray 408 with icons for frequently used applications, such as:        -   Phone 138, which may include an indicator 414 of the number            of missed calls or voicemail messages;        -   E-mail client 140, which may include an indicator 410 of the            number of unread e-mails;        -   Browser 147; and        -   Video and music player 152, also referred to as iPod            (trademark of Apple Inc.) module 152; and    -   Icons for other applications, such as:        -   IM 141;        -   Image management 144;        -   Camera 143;        -   Weather 149-1;        -   Stocks 149-2;        -   Workout support 142;        -   Calendar 148;        -   Alarm clock 149-4;        -   Map 154;        -   Notes 153;        -   Settings 412, which provides access to settings for device            100 and its various applications 136;        -   Online video module 155, also referred to as YouTube            (trademark of Google Inc.) module 155;        -   Word processor 384;        -   Drawing 380;        -   Spreadsheet 390; and        -   Presentation 382.

FIG. 4B illustrates an exemplary user interface on a device (e.g.,device 300, FIG. 3) with a touch-sensitive surface 451 (e.g., a tabletor touchpad 355, FIG. 3) that is separate from the display 450 (e.g.,touch screen display 112). Although many of the examples which followwill be given with reference to inputs on touch screen display 112(where the touch sensitive surface and the display are combined), insome embodiments, the device detects inputs on a touch-sensitive surfacethat is separate from the display, as shown in FIG. 4B. In someembodiments the touch sensitive surface (e.g., 451 in FIG. 4B) has aprimary axis (e.g., 452 in FIG. 4B) that corresponds to a primary axis(e.g., 453 in FIG. 4B) on the display (e.g., 450). In accordance withthese embodiments, the device detects contacts (e.g., 460 and 462 inFIG. 4B) with the touch-sensitive surface 451 at locations thatcorrespond to respective locations on the display (e.g., in FIG. 4B, 460corresponds to 468 and 462 corresponds to 470). In this way, user inputs(e.g., contacts 460 and 462, and movements thereof) detected by thedevice on the touch-sensitive surface (e.g., 451 in FIG. 4B) are used bythe device to manipulate the user interface on the display (e.g., 450 inFIG. 4B) of the multifunction device when the touch-sensitive surface isseparate from the display. It should be understood that similar methodsmay be used for other user interfaces described herein.

User Interfaces and Associated Processes

Attention is now directed towards embodiments of user interfaces (“UI”)and associated processes that may be implemented on an electronic devicewith a display and a touch-sensitive surface, such as device 300 orportable multifunction device 100.

FIGS. 5A-5P illustrate exemplary user interfaces for navigating andediting text via a touch-sensitive surface in accordance with someembodiments. The user interfaces in these figures are used to illustratethe processes described below, including the processes in FIGS. 6A-6F.

FIG. 5A illustrates electronic document 500 being displayed on touchscreen 112 of device 100. Electronic document 500 includes text 502. Insome embodiments, the electronic document is a plain text document, aword processing document, a presentation document with text, aspreadsheet with text, or a drawing document with text.

In FIG. 5A, text 502-1 in a first page is displayed on touch screen 112.Insertion marker 504 is displayed at a position in text 502-1, namely,just before the word “battle-field” in the sentence “We are met on agreat battle-field of that war,” as shown in FIG. 5A. For ease ofexplanation, the position of insertion marker 504, relative to text502-1, as shown in FIG. 5A (i.e., just before the word “battle-field” inthe sentence “We are met on a great battle-field of that war.”) will bereferred to below as “Position 1.”

In some embodiments, electronic document 500 is displayed in an editmode, and insertion marker 504 is displayed in text 502 while document500 is displayed in edit mode. While in edit mode, virtual keyboard 501,for receiving user text entry, may be displayed on touch screen 112.

Also illustrated in FIG. 5A is gesture 506 that is detected on touchscreen 112. Gesture 506 includes finger contact 506-A on touch screen112 and movement 508 of finger contact 506-A. Movement 508 is horizontalor substantially horizontal (e.g., movement 508 is within 10, 20, or 30degrees off from true horizontal), and rightward.

The action performed by device 100 in response to detection of gesture506 depends on whether gesture 506 is determined to satisfy one or moreparticular predefined conditions. In some embodiments, the one or morepredefined conditions include conditions regarding an initial velocityof gesture 506. For example, if the initial velocity of gesture 506 isless than a predefined threshold velocity, document 500 (including text502) is translated (e.g., by panning or by scrolling) on touch screen112 in accordance with the direction of movement 508 of gesture 506. Forexample, as shown in FIG. 5B, document 500, including text 502-1, ispanned rightward 512 in accordance with the direction of movement 508 ofgesture 506. Insertion marker 504 is moved rightward along with text502-1 in order to maintain its position at Position 1. In someembodiments, the predefined threshold velocity is 250, 333, or 500points per second.

If the initial velocity of gesture 506 is more than the predefinedthreshold velocity, insertion marker 504 is moved by one character intext 502-1 from Position 1 in accordance with the rightward direction ofmovement 508 of gesture 506, as shown in FIG. 5C. In FIG. 5C, onecharacter rightward (in accordance with the direction of movement 508)from Position 1 places insertion marker 504 at a position between “b”and “a” in the word “battle-field” in the same sentence as Position 1.For ease of explanation, the position of insertion marker 504, relativeto text 502-1, as shown in FIG. 5C (i.e., between “b” and “a” in theword “battle-field” in the sentence “We are met on a great battle-fieldof that war.”) will be referred to below as “Position 2.”

In some other embodiments, the predefined conditions include a distancemoved by contact 506-A during movement 508 in a predefined initial time(e.g., 0.05, 0.10, 0.15, 0.20, or 0.25 seconds) since contact 506-A wasdetected on touch screen 112. If the distance moved is less than apredefined initial movement threshold (e.g., movement by 25, 50, or 75points, where 1 point= 1/72 inches), document 500 is translated, asdescribed above with reference to FIG. 5B. If the distance moved isgreater than the predefined initial movement threshold, insertion marker504 is moved by one character to Position 2, as described above withreference to FIG. 5C.

In some embodiments, the conditions associated with moving insertionmarker 504 by one character to Position 2 further includes a conditionthat the detected gesture be a single-finger gesture (which is satisfiedby gesture 506). That is, insertion marker 504 is moved by one characterif the initial velocity or the initial movement condition is satisfied,and gesture 506 is a single-finger gesture. In some embodiments, theconditions associated with translating document 500 are indifferent withrespect to whether the detected gesture is a single-finger or amulti-finger gesture.

Returning to FIG. 5C, gesture 514 is detected on touch screen 112 whileinsertion marker 504 is positioned at Position 2. Gesture 514 includesfinger contact 514-A and movement 516 of contact 514-A. Movement 516 isvertical or substantially vertical (e.g., movement 516 is within 10, 20,or 30 degrees off from true vertical), and downward.

The action performed by device 100 in response to detection of gesture514 depends on whether gesture 514 is determined to satisfy one or moreparticular predefined conditions. In some embodiments, the one or morepredefined conditions include conditions regarding an initial velocityof gesture 514. For example, if the initial velocity of gesture 514 isless than a predefined threshold velocity, document 500 (including text502) is translated (e.g., by panning or by scrolling) on touch screen112 in accordance with the direction of movement 516 of gesture 514. Forexample, as shown in FIG. 5D, document 500, including text 502-1, isscrolled downward 520 in accordance with the direction of movement 516of gesture 514. Insertion marker 504 is moved downward along with text502-1 in order to maintain its position at Position 2. In someembodiments, the predefined threshold velocity is 250, 333, or 500points per second.

If the initial velocity of gesture 514 is more than the predefinedthreshold velocity, insertion marker 504 is moved by one verticallyadjacent line in text 502-1 from Position 2 in accordance with thedirection of movement 516 of gesture 514, as shown in FIG. 5E. In FIG.5E, one adjacent line downward (in accordance with the direction ofmovement 516) from the line of text containing Position 2 placesinsertion marker 504 at a position between “a” and “t” in the word“that” in the partial sentence “come to dedicate a portion of thatfield, as a final resting place for.” For ease of explanation, theposition of insertion marker 504, relative to text 502-1, as shown inFIG. 5E (i.e., between “a” and “t” in the word “that” in the partialsentence “come to dedicate a portion of that field, as a final restingplace for”) will be referred to below as “Position 3.”

In some embodiments, the movement of insertion marker 504 by oneadjacent line is vertical or substantially vertical. In someembodiments, the position to which insertion marker 504 moves fromPosition 1 is a position in the adjacent line that is closest to animaginary vertical line intersecting Position 1.

In some other embodiments, the predefined conditions include a distancemoved by contact 514-A during movement 516 in a predefined initial time(e.g., 0.05, 0.10, 0.15, 0.20, or 0.25 seconds) since contact 514-A wasdetected on touch screen 112. If the distance moved is less than apredefined initial movement threshold (e.g., movement by 25, 50, or 75points, where 1 point= 1/72 inches), document 500 is translated, asdescribed above with reference to FIG. 5D. If the distance moved isgreater than the predefined initial movement threshold, insertion marker504 is moved by one adjacent line to Position 3, as described above withreference to FIG. 5E.

In some embodiments, the conditions associated with moving insertionmarker 504 by one adjacent line to Position 3 further includes acondition that the detected gesture be a single-finger gesture (which issatisfied by gesture 514). That is, insertion marker 504 is moved by oneadjacent line if the initial velocity or the initial movement conditionis satisfied, and gesture 514 is a single-finger gesture. In someembodiments, the conditions associated with translating document 500 areindifferent with respect to whether the detected gesture is asingle-finger or a multi-finger gesture.

FIG. 5F illustrates gesture 522 detected on touch screen 112. Gesture522 is a two-finger gesture; gesture 522 includes finger contacts 522-Aand 522-B and movement 524 of finger contacts 522-A and 522-B. Movement524 is horizontal or substantially horizontal, and rightward.

In response to the detection of gesture 522, insertion marker 504 ismoved from Position 1 by one word rightward (i.e., in accordance withthe direction of movement 524 of gesture 522) to a position just beforethe word “of” in the sentence “We are met on a great battle-field ofthat war.” as shown in FIG. 5G. For ease of explanation, this newposition is referred to below as “Position 4.”

In some embodiments, movement by “one word” from a current position in acurrent word (e.g., a position at the beginning of the current word,after a space and before the first character in the current word; aposition between characters in the middle of the current word; or aposition at the end of the current word, after the last character in thecurrent word and prior to a space) includes movement to the beginning ofthe next word after the current word (e.g., for a rightward horizontalgesture). In some embodiments, movement by “one word” from a currentposition in a current word includes (a) movement to the beginning of thecurrent word if the current position is in the middle of the currentword or at the end of the current word, and (b) movement to thebeginning of the word immediately before the current word if the currentposition is at the beginning of the current word (e.g., for a leftwardhorizontal gesture). In some other embodiments, movement by “one word”from a current position in a current word includes movement to thebeginning of the word immediately before the current word if the currentposition is at the beginning, middle, or end of the current word (e.g.,for a leftward horizontal gesture).

In some embodiments, movement of insertion marker 504 by one word inresponse to the detection of gesture 522 is in response to adetermination that gesture 522 satisfies one or more particularpredefined conditions. In some embodiments, the one or more predefinedconditions include a condition that the detected gesture be amulti-finger gesture (e.g., two-finger or three-finger gesture). In someembodiments, the multi-finger gesture condition requires that thedetected gesture be a two-finger gesture (which is satisfied by gesture522).

FIG. 5H illustrates gesture 526 detected on touch screen 112. Gesture526 is a three-finger gesture; gesture 526 includes finger contacts526-A, 526-B, and 526-C, and movement 528 of finger contacts 526-A thru526-C. Movement 528 is horizontal or substantially horizontal, andrightward.

In some embodiments, in response to the detection of gesture 526,insertion marker 504 is moved from Position 1 to the end of the line oftext in which Position 1 is located, in accordance with the direction ofmovement 528 of gesture 526, as shown in FIG. 5I. For ease ofexplanation, this new position is referred to below as “Position 5.”

In some other embodiments, in response to the detection of gesture 526,insertion marker 504 is moved from Position 1 to the beginning of thesentence “We have come to dedicate a portion . . . ”, which is thesentence following the sentence “We are met on a great battle-field ofthat war.” in which Position 1 is located, as shown in FIG. 5J. Themovement of insertion marker 504 is in accordance with the direction ofmovement 528 of gesture 526. For ease of explanation, the new positionof insertion marker 504 as shown in FIG. 5J is referred to below as“Position 6.”

In some embodiments, movement of insertion marker 504 to the end of theline (or, in some other embodiments, to the beginning of the nextsentence) in response to the detection of gesture 526 is in response toa determination that gesture 526 satisfies one or more particularpredefined conditions. In some embodiments, the one or more predefinedconditions include a condition that the detected gesture be amulti-finger gesture (e.g., two-finger or three-finger gesture). In someembodiments, the multi-finger gesture condition requires that thedetected gesture be a three-finger gesture (which is satisfied bygesture 526).

FIG. 5K illustrates text 502-1 displayed on touch screen 112 withselection range 530 over a portion of text 502-1. Selection range 530selects the sentence “We are met on a great battle-field of that war.”,starting from just before the letter “W” in the word “We” and endingjust after the period ending the sentence. In some embodiments, whenselection range 530 is displayed, insertion marker 504 is not displayed,as is the case illustrated in FIG. 5K.

FIG. 5K also illustrates gesture 532 detected on touch screen 112.Gesture 532 includes contact 532-A and movement 534 of contact 532-A.Movement 534 is horizontal or substantially horizontal, and rightward.

In response to the detection of gesture 532, insertion marker 504 isplaced at a position corresponding to the end of selection range 530 (inaccordance with the direction of movement 534 of gesture 532), justafter the period ending the sentence “We are met on a great battle-fieldof that war.”, as shown in FIG. 5L. This position is referred to belowas “Position 7.” Also in response to the detection of gesture 532, thetext selected by selection range 530 is deselected (and selection range530 ceases to be displayed).

In some embodiments, placement of insertion marker 504 at the end ofselection range 530 in response to the detection of gesture 532 is inresponse to a determination that gesture 532 satisfies one or moreparticular predefined conditions. In some embodiments, the one or morepredefined conditions include a condition that the detected gesture be asingle-finger gesture (which is satisfied by gesture 532).

FIG. 5M illustrates gesture 536 detected on touch screen 112 whileinsertion marker 504 is displayed at Position 2 in text 502-1. Gesture536 includes contacts 536-A and 536-B, and movement 538 of the contacts536-A and 536-B. Movement 538 is vertical or substantially vertical, anddownward.

In response to the detection of gesture 536, insertion marker 504 isplaced at a position corresponding to the beginning of the paragraphsubsequent to the paragraph in which Position 2 is located, as shown inFIG. 5N. The new position, referred to below as “Position 8,” isdownward from Position 2 in text 502-1; insertion marker 504 moves fromPosition 2 to Position 8 in accordance with the downward direction ofmovement 538.

In some embodiments, movement of insertion marker 504 from Position 2 toPosition 8 in response to the detection of gesture 536 is in response toa determination that gesture 536 satisfies one or more particularpredefined conditions. In some embodiments, the one or more predefinedconditions include a condition that the detected gesture be amulti-finger gesture. In some embodiments, the condition is that thedetected gesture be a two-finger gesture (which is satisfied by gesture536).

FIG. 50 illustrates gesture 540 detected on touch screen 112 whileinsertion marker 504 is displayed at Position 2 in text 502-1. Gesture540 includes contacts 540-A, 540-B, and 540-C, and movement 542 of thecontacts 540-A thru 540-C. Movement 542 is vertical or substantiallyvertical, and downward.

In response to the detection of gesture 540, insertion marker 504 isplaced at a position corresponding to the beginning of the text 502-2 ina page subsequent to the page containing text 502-1, in which Position 2is located, as shown in FIG. 5P. The new position, referred to below as“Position 9,” is downward from Position 2 in text 502-1 in the sensethat Position 9 comes after Position 2 in text 502; insertion marker 504moves from Position 2 to Position 9 in accordance with the downwarddirection of movement 542.

In some embodiments, movement of insertion marker 504 from Position 2 toPosition 9 in response to the detection of gesture 540 is in response toa determination that gesture 540 satisfies one or more particularpredefined conditions. In some embodiments, the one or more predefinedconditions include a condition that the detected gesture be amulti-finger gesture. In some embodiments, the condition is that thedetected gesture be a three-finger gesture (which is satisfied bygesture 540).

It should be appreciated that the gestures described above withreference to FIGS. 5A-5P may be performed and repeated in any suitablesequence to move insertion marker 504 or translate the document by anydesired amount.

FIGS. 6A-6F are flow diagrams illustrating a method 600 of navigatingand editing text via a touch-sensitive surface in accordance with someembodiments. The method 600 is performed at an electronic device (e.g.,device 300, FIG. 3, or portable multifunction device 100, FIG. 1) with adisplay and a touch-sensitive surface. In some embodiments, the displayis a touch screen display and the touch-sensitive surface is on thedisplay. In some embodiments, the display is separate from thetouch-sensitive surface. Some operations in method 600 may be combinedand/or the order of some operations may be changed.

As described below, the method 600 provides an intuitive way to positionan insertion marker within a document. Fast imprecise finger swipegestures are used to precisely move an insertion marker by a desiredamount, while slower, more deliberate gestures are used to navigate(e.g., scroll or translate) the document. The method reduces thecognitive burden on a user when navigating and editing text via atouch-sensitive surface, thereby creating a more efficient human-machineinterface. For battery-operated electronic devices, enabling a user toposition an insertion marker within text faster and more efficientlyconserves power and increases the time between battery charges.

The device displays text of an electronic document on the display (602).For example, in FIG. 5A, text 502-1 of electronic document 500 isdisplayed on touch screen 112. In some embodiments, the display is atouch screen display and the touch-sensitive surface is on the display(604).

The device displays an insertion marker (e.g., an I-beam, underline,rectangle, or other text cursor) at a first position in the text of theelectronic document (e.g., in an editing mode for the electronicdocument) (606). For example, in FIG. 5A, insertion marker 504 isdisplayed at Position 1 in text 502-1.

The device detects a first horizontal (or substantially horizontal,e.g., within 10, 20, or 30 degrees of horizontal) gesture on thetouch-sensitive surface (608). In FIG. 5A, for example, gesture 506 isdetected on touch screen 112. Gesture 506 has movement 508 that ishorizontal.

In response to a determination that the first horizontal gesturesatisfies a first set of one or more predefined conditions (612), thedevice translates (e.g., panning or scrolling) the electronic documenton the display in accordance with a direction of the first horizontalgesture (614) and maintains the insertion marker at the first positionin the text (616). For example, if device 100 determines that gesture506 satisfies a first set of one or more predefined conditions, inresponse to the determination, document 500, including text 502-1 ispanned in direction 512 (which is in accord with the direction ofmovement 508, as shown in FIG. 5B. Throughout the panning of document500, insertion marker 504 is maintained at Position 1 within text 502-1,as shown in FIG. 5B.

In response to a determination that the first horizontal gesturesatisfies a second set of one or more predefined conditions that isdistinct from the first set of one or more predefined conditions, thedevice moves the insertion marker by one character in the text from thefirst position to a second position in the text in accordance with thedirection of the first horizontal gesture (622). For example, if device100 determines that gesture 506 satisfies a second set of one or morepredefined conditions that is distinct from the first set of predefinedconditions, in response to the determination, insertion marker 504 ismoved from Position 1 in FIG. 5A to Position 2 in FIG. 5C. Position 2 isone character forward in text 502-1 from Position 1, which is in accordwith the direction of movement 508, as the direction of movement 508points in the forward direction with respect to text 502-1.

In some embodiments, the first set of one or more predefined conditionsincludes an initial velocity of the first horizontal gesture being lessthan a predefined threshold velocity (e.g., 250, 333, or 500 points/sec)(618), and the second set of one or more predefined conditions includesthe initial velocity of the first horizontal gesture being more than thepredefined threshold velocity (624). For example, device 100 detects aninitial velocity of gesture 506. If the initial velocity of gesture 506is less than a predefined threshold velocity, then document 500 ispanned and insertion marker 504 remains at Position 1, as shown in FIG.5B. If the initial velocity of gesture 506 is more than the predefinedthreshold velocity, then insertion marker 504 is moved to Position 2, asshown in FIG. 5C.

In some embodiments, the first horizontal gesture includes a fingercontact and movement of the finger contact (610), the first set of oneor more predefined conditions includes an initial movement of the fingercontact (e.g., movement by 25, 50, or 75 points, where 1 point= 1/72inches) in a predefined initial time since detecting the finger contact(e.g., 0.05, 0.10, 0.15, 0.20, or 0.25 seconds) being less than apredefined initial movement threshold (620), and the second set of oneor more predefined conditions includes the initial movement of thefinger contact in the predefined initial time since detecting the fingercontact being greater than the predefined initial movement threshold(626). For example, gesture 506 includes contact 506-A and movement 508of contact 506-A. If contact 506-A moves, in a predefined initial timesince detection of contact 506-A, a distance less than a predefinedinitial movement threshold, then document 500 is panned and insertionmarker 504 remains at Position 1, as shown in FIG. 5B. If contact 506-Amoves, in the predefined initial time since detection of contact 506-A,a distance more than the predefined initial movement threshold, theninsertion marker 504 is moved to Position 2, as shown in FIG. 5C.

In some embodiments, the second set of one or more predefined conditionsincludes that the first horizontal gesture is a single-finger gesture(628). For example, in FIG. 5C, insertion marker 504 moves from Position1 to Position 2 in response to a single-finger (i.e., one finger contact506-A) gesture 506. Thus, in some embodiments, a quick, horizontal swipegesture with a single finger moves the insertion marker by one characterin the direction of the gesture, while a slower horizontal gesture witha single finger translates the document in the direction of the gesture.In some embodiments, if a multi-finger gesture with horizontal movementis detected instead of gesture 506, other operations may be performed orgesture 506 may be ignored.

In some embodiments, while displaying the insertion marker at the secondposition in the text of the electronic document (630), the devicedetects a vertical (or substantially vertical, e.g., within 10, 20, or30 degrees of vertical) gesture on the touch-sensitive surface (630).For example, in FIG. 5C, while insertion marker 504 is displayed atPosition 2, gesture 514 is detected on touch screen 112. Gesture 514includes downward vertical movement 516.

In response to a determination that the vertical gesture satisfies athird set of one or more predefined conditions (636), the devicetranslates (e.g., scrolls) the electronic document on the display inaccordance with a direction of the vertical gesture (638) and maintainsthe insertion marker at the second position in the text (640). Forexample, if device 100 determines that gesture 514 satisfies a third setof one or more predefined conditions, in response to the determination,document 500, including text 502-1 is scrolled in direction 520 (whichis in accord with the direction of movement 516, as shown in FIG. 5D.Throughout the scrolling of document 500, insertion marker 504 ismaintained at Position 2 within text 502-1, as shown in FIG. 5D.

In response to a determination that the vertical gesture satisfies afourth set of one or more predefined conditions that is distinct fromthe third set of one or more predefined conditions, the device moves theinsertion marker from a line in the text containing the second positionto a vertically adjacent line in the text in accordance with thedirection of the vertical gesture (646). For example, if device 100determines that gesture 514 satisfies a fourth set of one or morepredefined conditions that is distinct from the third set of predefinedconditions, in response to the determination, insertion marker 504 ismoved from Position 2 in FIG. 5C to Position 3 in FIG. 5E. Position 3 isone line downward in text 502-1 from Position 2, which is in accord withthe downward direction of movement 516.

In some embodiments, the third set of one or more predefined conditionsincludes an initial velocity of the vertical gesture being less than apredefined threshold velocity (e.g., 250, 333, or 500 points/sec) (642),and the fourth set of one or more predefined conditions includes theinitial velocity of the vertical gesture being more than the predefinedthreshold velocity (648). For example, device 100 detects an initialvelocity of gesture 514. If the initial velocity of gesture 514 is lessthan a predefined threshold velocity, then document 500 is scrolled andinsertion marker 504 remains at Position 2, as shown in FIG. 5D. If theinitial velocity of gesture 514 is more than the predefined thresholdvelocity, then insertion marker 504 is moved to Position 3, as shown inFIG. 5E.

In some embodiments, the vertical gesture includes a finger contact andmovement of the finger contact (634), the third set of one or morepredefined conditions includes an initial movement of the finger contact(e.g., movement by 25, 50, or 75 points, where 1 point= 1/72 inches) ina predefined initial time since detecting the finger contact (e.g.,0.05, 0.10, 0.15, 0.20, or 0.25 seconds) being less than a predefinedinitial movement threshold (644), and the fourth set of one or morepredefined conditions includes the initial movement of the fingercontact in the predefined initial time since detecting the fingercontact being greater than the predefined initial movement threshold(650). For example, gesture 514 (FIG. 5C) includes contact 514-A andmovement 516 of contact 514-A. If contact 514-A moves, in a predefinedinitial time since detection of contact 514-A, a distance less than apredefined initial movement threshold, then document 500 is scrolled andinsertion marker 504 remains at Position 2, as shown in FIG. 5D. Ifcontact 514-A moves, in the predefined initial time since detection ofcontact 514-A, a distance more than the predefined initial movementthreshold, then insertion marker 504 is moved to Position 3, as shown inFIG. 5E.

In some embodiments, the fourth set of one or more predefined conditionsincludes that the vertical gesture is a single-finger gesture (652). Forexample, in FIG. 5E, insertion marker 504 moves from Position 2 toPosition 3 in response to a single-finger (i.e., one finger contact514-A) gesture 514. Thus, in some embodiments, a quick, vertical swipegesture with a single finger moves the insertion marker by one line inthe direction of the gesture, while a slower vertical gesture with asingle finger translates the document in the direction of the gesture.In some embodiments, if a multi-finger gesture with vertical movement isdetected instead of gesture 514, other operations may be performed orgesture 514 may be ignored.

In some embodiments, in response to a determination that the firsthorizontal gesture satisfies a fifth set of one or more predefinedconditions that is distinct from the first set of one or more predefinedconditions and the second set of one or more predefined conditions, thedevice moves the insertion marker by one word in the text from the firstposition in accordance with the direction of the first horizontalgesture (662). For example, in FIG. 5F, gesture 522 is detected insteadof gesture 506 (FIG. 5A). Gesture 522 includes horizontal movement 524.If device 100 determines that gesture 522 satisfies a fifth set of oneor more predefined conditions that is distinct from the first or secondset of predefined conditions, in response to the determination,insertion marker 504 is moved from Position 1 in FIG. 5F, in accordancewith the direction of movement 524 of gesture 522, to Position 4 in FIG.5G. Position 4 is located at the beginning of the next word (followingthe direction of movement 524 of gesture 522) from the word at thebeginning of which Position 1 is located.

In some embodiments, the fifth set of one or more predefined conditionsincludes that the first horizontal gesture is a multi-finger gesture(e.g., a two-finger or three-finger swipe gesture) (664). For example,in FIGS. 5F-5G, insertion marker 504 is moved, from Position 1 toPosition 4 (instead of Position 2) in response to multi-finger gesture522. In some embodiments, insertion marker 504 is moved by one word ifthe horizontal gesture is a two-finger gesture, and moved by a differentamount than one character or one word if the horizontal gesture is athree-finger gesture. In some embodiments, the fifth set of predefinedconditions includes, in addition to the gesture being a multi-fingergesture, the initial speed of the multi-finger gesture being more than apredefined threshold velocity (e.g., 250, 333, or 500 points/sec).

In some embodiments, in response to a determination that the firsthorizontal gesture satisfies a sixth set of one or more predefinedconditions that is distinct from the first set of one or more predefinedconditions and the second set of one or more predefined conditions, thedevice moves the insertion marker to a beginning or an end of a line oftext containing the first position in accordance with the direction ofthe first horizontal gesture (666). For example, in FIG. 5H, gesture 526is detected instead of gesture 506 (FIG. 5A). Gesture 526 includeshorizontal movement 528. If device 100 determines that gesture 526satisfies a sixth set of one or more predefined conditions that isdistinct from the first and second set of predefined conditions, inresponse to the determination, insertion marker 504 is moved fromPosition 1 in FIG. 5H to Position 5 in FIG. 5I, in accordance with thedirection of movement 528 of gesture 526. Position 5 is located at theend of the line of text in which Position 1 is located.

In some embodiments, the insertion marker moves to the beginning of anext line of text after the line of text containing the first position,instead of moving to the end of the line of text containing the firstposition. For example, instead of moving to Position 5, the insertionmarker may be moved to the beginning of the line of text after the linein which Position 1 is located.

In some embodiments, the sixth set of one or more predefined conditionsincludes that the first horizontal gesture is a multi-finger gesture(e.g., a two-finger or three-finger swipe gesture) (668). For example,in FIGS. 5H-5I, insertion marker 504 is moved, from Position 1 toPosition 5 (instead of Position 2) in response to multi-finger gesture526. In some embodiments, insertion marker 504 is moved to the beginningor end of the line of text where the first position is located if thegesture is a three-finger gesture, and moved by a different amount thanone character or to the beginning/end of the line if the gesture is atwo-finger gesture. In some embodiments, the sixth set of predefinedconditions includes, in addition to the gesture being a multi-fingergesture, the initial speed of the multi-finger gesture being more than apredefined threshold velocity (e.g., 250, 333, or 500 points/sec).

In some embodiments, in response to a determination that the firsthorizontal gesture satisfies a seventh set of one or more predefinedconditions that is distinct from the first set of one or more predefinedconditions and the second set of one or more predefined conditions, thedevice moves the insertion marker to a beginning of a sentencecontaining the first position or a beginning of a next sentence afterthe sentence containing the first position in accordance with thedirection of the first horizontal gesture (670). For example, in FIG.5H, gesture 526 is detected instead of gesture 506 (FIG. 5A). Gesture526 includes horizontal movement 528. If device 100 determines thatgesture 526 satisfies a seventh set of one or more predefined conditionsthat is distinct from the first or second set of predefined conditions,in response to the determination, insertion marker 504 is moved fromPosition 1 in FIG. 5H to Position 6 in FIG. 5I, in accordance with thedirection of movement 528 of gesture 526. Position 6 is located at thebeginning of the next sentence after the sentence in which Position 1 islocated.

In some embodiments, the insertion marker moves to the end of thesentence containing the first position, instead of moving to thebeginning of the next sentence after the sentence containing the firstposition. For example, instead of moving to Position 6, the insertionmarker may be moved to the end of the sentence in which Position 1 islocated.

In some embodiments, the seventh set of one or more predefinedconditions includes that the first horizontal gesture is a multi-fingergesture (e.g., a two-finger or three-finger swipe gesture) (672). Forexample, in FIGS. 5H and 5I, insertion marker 504 is moved from Position1 to Position 6 (instead of Position 2) in response to multi-fingergesture 526. In some embodiments, insertion marker 504 is moved to thebeginning of the sentence containing the first position or of the nextsentence after the sentence containing the first position is located ifthe gesture is a three-finger gesture, and moved by a different amountthan one character or to the beginning of the current/next sentence ifthe gesture is a two-finger gesture. In some embodiments, the seventhset of predefined conditions includes, in addition to the gesture beinga multi-finger gesture, the initial speed of the multi-finger gesturebeing more than a predefined threshold velocity (e.g., 250, 333, or 500points/sec).

In some embodiments, while displaying a range of selected text in thetext of the electronic document (674), the device detects a secondhorizontal (or substantially horizontal, e.g., within 10, 20, or 30degrees of horizontal) gesture on the touch-sensitive surface (676). Forexample, in FIG. 5K, while selection range 530 is displayed on touchscreen 112 over selected text in text 502-1, gesture 532 is detected ontouch screen 112. Gesture 532 includes horizontal movement 534.

In response to a determination that the second horizontal gesturesatisfies an eighth set of one or more predefined conditions (678), thedevice places the insertion marker at a beginning or an end of the rangeof selected text in accordance with a direction of the second horizontalgesture (680) and deselects the range of selected text (682). Forexample, as shown in FIG. 5L, in response to a determination thatgesture 532 satisfies an eighth set of one or more conditions, insertionmarker 504 is placed at Position 7, which is at the end of selectionrange 530, and the text selected by selection range 530 is deselected(i.e., selection range 530 ceases to be displayed).

In some embodiments, the eighth set of one or more predefined conditionsincludes that the second horizontal gesture is a single-finger gesture(684). For example, insertion point 504 is placed at Position 7 and thetext selected by selection range 530 is deselected in response tosingle-finger gesture 532. In some embodiments, if the second horizontalgesture is a multifinger gesture, the device extends the range ofselected text in accordance with a direction of the second horizontalgesture (not shown). For example, a two-finger rightward swipe extendsthe end of the range by one character (or by one word), while atwo-finger leftward swipe contracts the end of the range by onecharacter (or by one word).

In some embodiments, in response to a determination that the verticalgesture satisfies a ninth set of one or more predefined conditions thatis distinct from the third set of one or more predefined conditions andthe fourth set of one or more predefined conditions, the device movesthe insertion marker from the second position to a beginning of aparagraph containing the second position or to a beginning of a nextparagraph after the paragraph containing the second position inaccordance with the direction of the vertical gesture (654). Forexample, in FIG. 5M, gesture 536 is detected instead of gesture 514(FIG. 5C). Gesture 536 includes vertical movement 538. If device 100determines that gesture 536 satisfies a ninth set of one or morepredefined conditions that is distinct from the third or fourth set ofpredefined conditions, in response to the determination, insertionmarker 504 is moved from Position 2 in FIG. 5M to Position 8 in FIG. 5N.Position 8 is located at the beginning of the next paragraph after theparagraph containing Position 2, which is in accord with the downwarddirection of movement 538 of gesture 536.

In some embodiments, the insertion marker moves to the end of theparagraph containing the second position, instead of moving to thebeginning of the next paragraph after the paragraph containing thesecond position.

In some embodiments, the ninth set of one or more predefined conditionsincludes that the vertical gesture is a multi-finger gesture (e.g., atwo-finger or three-finger swipe gesture) (656). For example, in FIGS.5M-5N, insertion marker 504 is moved, from Position 2 to Position 8(instead of Position 3) in response to multi-finger gesture 536. In someembodiments, insertion marker 504 is moved to the beginning of thecurrent or next paragraph if the gesture is a two-finger gesture, andmoved by a different amount if the gesture is a three-finger gesture. Insome embodiments, the ninth set of predefined conditions includes theinitial speed of the multi-finger gesture being more than a predefinedthreshold velocity (e.g., 250, 333, or 500 points/sec).

In some embodiments, in response to a determination that the verticalgesture satisfies a tenth set of one or more predefined conditions thatis distinct from the third set of one or more predefined conditions andthe fourth set of one or more predefined conditions, the device movesthe insertion marker from the second position to a beginning of a pagecontaining the second position or to a beginning of a next page afterthe page containing the second position in accordance with the directionof the vertical gesture (658). For example, in FIG. 5O, gesture 540 isdetected instead of gesture 514 (FIG. 5C). Gesture 540 includes verticalmovement 542. If device 100 determines that gesture 540 satisfies atenth set of one or more predefined conditions different from the thirdor fourth set of predefined conditions, in response to thedetermination, insertion marker 504 is moved from Position 2 in FIG. 5Oto Position 9 in FIG. 5P. Position 9 is located at the beginning of thenext page (containing text 502-2) after the page containing Position 2,which is in accord with the downward direction (corresponding to theforward direction in text 502) of movement 542 of gesture 540. In someembodiments, the insertion marker moves to the end of the pagecontaining the second position, instead of moving to the beginning ofthe next page after the page containing the second position.

In some embodiments, the tenth set of one or more predefined conditionsincludes that the vertical gesture is a multi-finger gesture (e.g., atwo-finger or three-finger swipe gesture) (660). For example, in FIGS.5O-5P, insertion marker 504 is moved, from Position 2 to Position 9(instead of Position 3) in response to multi-finger gesture 536. In someembodiments, insertion marker 504 is moved to the beginning of thecurrent or next page if the gesture is a three-finger gesture, and movedby a different amount if the gesture is a two-finger gesture. In someembodiments, the tenth set of predefined conditions includes the initialspeed of the multi-finger gesture being more than a predefined thresholdvelocity (e.g., 250, 333, or 500 points/sec).

In accordance with some embodiments, FIG. 7 shows a functional blockdiagram of an electronic device 700 configured in accordance with theprinciples of the invention as described above. The functional blocks ofthe device may be implemented by hardware, software, or a combination ofhardware and software to carry out the principles of the invention. Itis understood by persons of skill in the art that the functional blocksdescribed in FIG. 7 may be combined or separated into sub-blocks toimplement the principles of the invention as described above. Therefore,the description herein may support any possible combination orseparation or further definition of the functional blocks describedherein.

As shown in FIG. 7, an electronic device 700 includes a display unit 702configured to display text of an electronic document and an insertionmarker at a first position in the text of the electronic document, atouch-sensitive surface unit 704 configured to receive gestures, and aprocessing unit 706 coupled to the display unit 702 and thetouch-sensitive surface unit 704. In some embodiments, the processingunit 706 includes a detecting unit 708, a translating unit 710, amaintaining unit 712, a moving unit 714, a placing unit 716, and adeselecting unit 718.

The processing unit 706 is configured to detect a first horizontalgesture on the touch-sensitive surface unit 704 (e.g., with thedetecting unit 708); in response to a determination that the firsthorizontal gesture satisfies a first set of one or more predefinedconditions, translate the electronic document on the display unit 702 inaccordance with a direction of the first horizontal gesture (e.g., withthe translating unit 710), and maintain the insertion marker at thefirst position in the text (e.g., with the maintaining unit 712); and,in response to a determination that the first horizontal gesturesatisfies a second set of one or more predefined conditions that isdistinct from the first set of one or more predefined conditions, movethe insertion marker by one character in the text from the firstposition to a second position in the text in accordance with thedirection of the first horizontal gesture (e.g., with the moving unit714).

In some embodiments, the first set of one or more predefined conditionsincludes an initial velocity of the first horizontal gesture being lessthan a predefined threshold velocity, and the second set of one or morepredefined conditions includes the initial velocity of the firsthorizontal gesture being more than the predefined threshold velocity.

In some embodiments, the first horizontal gesture includes a fingercontact and movement of the finger contact, the first set of one or morepredefined conditions includes an initial movement of the finger contactin a predefined initial time since detecting the finger contact beingless than a predefined initial movement threshold, and the second set ofone or more predefined conditions includes the initial movement of thefinger contact in the predefined initial time since detecting the fingercontact being greater than the predefined initial movement threshold.

In some embodiments, the second set of one or more predefined conditionsincludes that the first horizontal gesture is a single-finger gesture.

In some embodiments, the processing unit 706 is configured to: while thedisplay unit 702 displays the insertion marker at the second position inthe text of the electronic document, detect a vertical gesture on thetouch-sensitive surface unit 704 (e.g., with the detecting unit 708); inresponse to a determination that the vertical gesture satisfies a thirdset of one or more predefined conditions, translate the electronicdocument on the display unit 702 in accordance with a direction of thevertical gesture (e.g., with the translating unit 710), and maintain theinsertion marker at the second position in the text (e.g., with themaintaining unit 712); and, in response to a determination that thevertical gesture satisfies a fourth set of one or more predefinedconditions that is distinct from the third set of one or more predefinedconditions, move the insertion marker from a line in the text containingthe second position to a vertically adjacent line in the text inaccordance with the direction of the vertical gesture (e.g., with themoving unit 714).

In some embodiments, the third set of one or more predefined conditionsincludes an initial velocity of the vertical gesture being less than apredefined threshold velocity, and the fourth set of one or morepredefined conditions includes the initial velocity of the verticalgesture being more than the predefined threshold velocity.

In some embodiments, the vertical gesture includes a finger contact andmovement of the finger contact, the third set of one or more predefinedconditions includes an initial movement of the finger contact in apredefined initial time since detecting the finger contact being lessthan a predefined initial movement threshold, and the fourth set of oneor more predefined conditions includes the initial movement of thefinger contact in the predefined initial time since detecting the fingercontact being greater than the predefined initial movement threshold.

In some embodiments, the fourth set of one or more predefined conditionsincludes that the vertical gesture is a single-finger gesture.

In some embodiments, the processing unit 706 is configured to, inresponse to a determination that the first horizontal gesture satisfiesa fifth set of one or more predefined conditions that is distinct fromthe first set of one or more predefined conditions and the second set ofone or more predefined conditions, move the insertion marker by one wordin the text from the first position in accordance with the direction ofthe first horizontal gesture (e.g., with the moving unit 714).

In some embodiments, the fifth set of one or more predefined conditionsincludes that the first horizontal gesture is a multi-finger gesture.

In some embodiments, the processing unit 706 is configured to, inresponse to a determination that the first horizontal gesture satisfiesa sixth set of one or more predefined conditions that is distinct fromthe first set of one or more predefined conditions and the second set ofone or more predefined conditions, move the insertion marker to abeginning or an end of a line of text containing the first position inaccordance with the direction of the first horizontal gesture (e.g.,with the moving unit 714).

In some embodiments, the sixth set of one or more predefined conditionsincludes that the first horizontal gesture is a multi-finger gesture.

In some embodiments, the processing unit 706 is configured to, inresponse to a determination that the first horizontal gesture satisfiesa seventh set of one or more predefined conditions that is distinct fromthe first set of one or more predefined conditions and the second set ofone or more predefined conditions, move the insertion marker to abeginning of a sentence containing the first position or a beginning ofa next sentence after the sentence containing the first position inaccordance with the direction of the first horizontal gesture (e.g.,with the moving unit 714).

In some embodiments, the seventh set of one or more predefinedconditions includes that the first horizontal gesture is a multi-fingergesture.

In some embodiments, the processing unit 706 is configured to, while thedisplay unit 702 displays a range of selected text in the text of theelectronic document: detect a second horizontal gesture on thetouch-sensitive surface unit 704 (e.g., with the detecting unit 708);and, in response to a determination that the second horizontal gesturesatisfies an eighth set of one or more predefined conditions, place theinsertion marker at a beginning or an end of the range of selected textin accordance with a direction of the second horizontal gesture (e.g.,with the placing unit 716), and deselect the range of selected text(e.g., with the deselecting unit 718).

In some embodiments, the eighth set of one or more predefined conditionsincludes that the second horizontal gesture is a single-finger gesture.

In some embodiments, the processor is configured to, m response to adetermination that the vertical gesture satisfies a ninth set of one ormore predefined conditions that is distinct from the third set of one ormore predefined conditions and the fourth set of one or more predefinedconditions, move the insertion marker from the second position to abeginning of a paragraph containing the second position or to abeginning of a next paragraph after the paragraph containing the secondposition in accordance with the direction of the vertical gesture (e.g.,with the moving unit 714).

In some embodiments, the ninth set of one or more predefined conditionsincludes that the vertical gesture is a multi-finger gesture.

In some embodiments, the processor is configured to, in response to adetermination that the vertical gesture satisfies a tenth set of one ormore predefined conditions that is distinct from the third set of one ormore predefined conditions and the fourth set of one or more predefinedconditions, move the insertion marker from the second position to abeginning of a page containing the second position or to a beginning ofa next page after the page containing the second position in accordancewith the direction of the vertical gesture (e.g., with the moving unit714).

In some embodiments, the tenth set of one or more predefined conditionsincludes that the vertical gesture is a multi-finger gesture.

In some embodiments, the display unit 702 is a touch-sensitive displayunit and the touch-sensitive surface unit 704 is on the display unit702.

It should be appreciated that while the embodiments described above aredirected to movement of an insertion marker within text, the embodimentsdescribed above may be used in an analogous manner to move, position, orotherwise manipulate other types of insertion markers or cursors, suchas moving a current cell highlight or focus in a spreadsheet applicationor changing a current shape or object highlight/focus in a drawing orpresentation application.

The operations in the information processing methods described above maybe implemented by running one or more functional modules in informationprocessing apparatus such as general purpose processors or applicationspecific chips. These modules, combinations of these modules, and/ortheir combination with general hardware (e.g., as described above withrespect to FIGS. 1A and 3) are all included within the scope ofprotection of the invention.

The operations described above with reference to FIGS. 6A-6F may beimplemented by components depicted in FIGS. 1A-1B. For example,detection operation 608, translation operation 614, maintainingoperation 616, and moving operation 622 may be implemented by eventsorter 170, event recognizer 180, and event handler 190. Event monitor171 in event sorter 170 detects a contact on touch-sensitive display112, and event dispatcher module 174 delivers the event information toapplication 136-1. A respective event recognizer 180 of application136-1 compares the event information to respective event definitions186, and determines whether a first contact at a first location on thetouch-sensitive surface corresponds to a predefined event or sub-event,such as selection of an object on a user interface. When a respectivepredefined event or sub-event is detected, event recognizer 180activates an event handler 190 associated with the detection of theevent or sub-event. Event handler 190 may utilize or call data updater176 or object updater 177 to update the application internal state 192.In some embodiments, event handler 190 accesses a respective GUI updater178 to update what is displayed by the application. Similarly, it wouldbe clear to a person having ordinary skill in the art how otherprocesses can be implemented based on the components depicted in FIGS.1A-1B.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. An electronic device, comprising: a display; atouch-sensitive surface; one or more processors; memory; and one or moreprograms, wherein the one or more programs are stored in the memory andconfigured to be executed by the one or more processors, the one or moreprograms including instructions for: displaying text of an electronicdocument on the display; displaying an insertion marker at a firstposition in the text of the electronic document, the text around thefirst position having a visual appearance; detecting a first input at alocation on the touch-sensitive surface, the location n the touchsensitive surface corresponding to a location on the display where thetext of the electronic document is displayed other than the firstposition in the text and a second position in the text, wherein thefirst input is an input in a first direction; and in response todetecting the first input: in accordance with a determination that thefirst input in the first direction at the location on thetouch-sensitive surface that corresponds to the location on the displaysatisfies a first set of one or more predefined conditions: translatingthe electronic document on the display, and maintaining the insertionmarker at the first position in the text; and, in accordance with adetermination that the first input in the first direction at thelocation on the touch-sensitive surface that corresponds to the locationon the display satisfies a second set of one or more predefinedconditions that is distinct from the first set of one or more predefinedconditions, the second set of one or more predefined conditionsincluding a condition that the first input has a speed greater than apredefined threshold velocity: moving the insertion marker in the textfrom the first position to the second position in the text, andmaintaining the visual appearance of the text around the first positionin the text.
 2. The device of claim 1, wherein the first set of one ormore predefined conditions comprises that a magnitude of acharacteristic of the input is less than a predetermined thresholdmagnitude.
 3. The device of claim 1, wherein the second set of one ormore predefined conditions comprises that a magnitude of acharacteristic of the input is greater than a predetermined thresholdmagnitude.
 4. The device of claim 1, wherein the first set of one ormore predefined conditions comprises that the first input comprises afirst predefined number of contacts.
 5. The device of claim 1, whereinthe second set of one or more predefined conditions comprises that thefirst input comprises a second predefined number of contacts.
 6. Thedevice of claim 1, wherein the first set of one or more predefinedconditions comprises that the first input comprises movement of acontact in a first predefined direction.
 7. The device of claim 1,wherein the second set of one or more predefined conditions comprisesthat the first input comprises movement of a contact in a secondpredefined direction.
 8. The device of claim 1, wherein moving theinsertion marker in the text from the first position to the secondposition in the text comprises moving the insertion marker by onecharacter.
 9. The device of claim 1, wherein moving the insertion markerin the text from the first position to the second position in the textcomprises moving the insertion marker by one word.
 10. The device ofclaim 1, wherein moving the insertion marker in the text from the firstposition to the second position in the text comprises moving theinsertion marker to an adjacent line in the text.
 11. The device ofclaim 1, wherein moving the insertion marker in the text from the firstposition to the second position in the text comprises moving theinsertion marker to an edge of a line in which the insertion marker iscurrently located.
 12. The device of claim 1, wherein moving theinsertion marker in the text from the first position to the secondposition in the text comprises moving the insertion marker to an edge ofa sentence in which the insertion marker is currently located.
 13. Thedevice of claim 1, wherein moving the insertion marker in the text fromthe first position to the second position in the text comprises movingthe insertion marker to an edge of a selected portion of the text inwhich the insertion marker is currently located.
 14. The device of claim1, wherein moving the insertion marker in the text from the firstposition to the second position in the text comprises moving theinsertion marker to an edge of a paragraph in which the insertion markeris currently located.
 15. The device of claim 1, wherein moving theinsertion marker in the text from the first position to the secondposition in the text comprises moving the insertion marker to an edge ofa page in which the insertion marker is currently located.
 16. Thedevice of claim 1, wherein: determining whether the first inputsatisfies the first set of one or more predefined conditions includescomparing a magnitude of the first input with one or more thresholdvalues; and determining whether the first input satisfies the second setof one or more predefined conditions includes comparing a magnitude ofthe first input with one or more threshold values.
 17. The device ofclaim 1, wherein the second position in the text is predetermined. 18.The device of claim 1, wherein the second position in the text is notdetermined in accordance with a length of the first input.
 19. Thedevice of claim 1, wherein maintaining the insertion marker at the firstposition in the text includes moving, on the display, the insertionmarker and the text according to the first input.
 20. Acomputer-implemented method, comprising: at a device with a display anda touch-sensitive surface: displaying text of an electronic document onthe display; displaying an insertion marker at a first position in thetext of the electronic document, the text around the first positionhaving a visual appearance; detecting a first input at a location on thetouch-sensitive surface, the location on the touch-sensitive surfacecorresponding to a location on the display where the text of theelectronic document is displayed other than the first position in thetext and a second position in the text, wherein the first input is aninput in a first direction; and in response to detecting the firstinput: in accordance with a determination that the first input in thefirst direction at the location on the touch-sensitive surface thatcorresponds to the location on the display satisfies a first set of oneor more predefined conditions: translating the electronic document onthe display, and maintaining the insertion marker at the first positionin the text; and, in accordance with a determination that the firstinput in the first direction at the location on the touch-sensitivesurface that corresponds to the location on the display satisfies asecond set of one or more predefined conditions that is distinct fromthe first set of one or more predefined conditions, the second set ofone or more predefined conditions including a condition that the firstinput has a speed greater than a predefined threshold velocity: movingthe insertion marker in the text from the first position to the secondposition in the text, and maintaining the visual appearance of the textaround the first position in the text.
 21. The computer-implementedmethod of claim 20, wherein the first set of one or more predefinedconditions comprises that a magnitude of a characteristic of the inputis less than a predetermined threshold magnitude, and wherein the secondset of one or more predefined conditions comprises that a magnitude of acharacteristic of the input is greater than a predetermined thresholdmagnitude.
 22. The computer-implemented method of claim 20, wherein thefirst set of one or more predefined conditions comprises that the firstinput comprises a first predefined number of contacts, and wherein thesecond set of one or more predefined conditions comprises that the firstinput comprises a second predefined number of contacts.
 23. Thecomputer-implemented method of claim 20, wherein the first set of one ormore predefined conditions comprises that the first input comprisesmovement of a contact in a first predefined direction, and wherein thesecond set of one or more predefined conditions comprises that the firstinput comprises movement of a contact in a second predefined direction.24. The computer-implemented method of claim 20, wherein moving theinsertion marker in the text from the first position to the secondposition in the text comprises moving the insertion marker: by onecharacter; by one word; or to an adjacent line in the text.
 25. Thecomputer-implemented method of claim 20, wherein moving the insertionmarker in the text from the first position to the second position in thetext comprises moving the insertion marker: to an edge of a line inwhich the insertion marker is currently located; to an edge of asentence in which the insertion marker is currently located; to an edgeof a paragraph in which the insertion marker is currently located; or toan edge of a page in which the insertion marker is currently located.26. The computer-implemented method of claim 20, wherein moving theinsertion marker in the text from the first position to the secondposition in the text comprises moving the insertion marker to an edge ofa selected portion of the text in which the insertion marker iscurrently located.
 27. The computer-implemented method of claim 20,wherein: determining whether the first input satisfies the first set ofone or more predefined conditions includes comparing a magnitude of thefirst input with one or more threshold values; and determining whetherthe first input satisfies the second set of one or more predefinedconditions includes comparing a magnitude of the first input with one ormore threshold values.
 28. The computer-implemented method of claim 20,wherein the second position in the text is predetermined.
 29. Thecomputer-implemented method of claim 20, wherein the second position inthe text is not determined in accordance with a length of the firstinput.
 30. The computer-implemented method of claim 20, whereinmaintaining the insertion marker at the first position in the textincludes moving, on the display, the insertion marker and the textaccording to the first input.
 31. A non-transitory computer-readablemedium having stored thereon instructions which, when executed by adevice with a touch-sensitive surface and a display, cause the deviceto: display text of an electronic document on the display; display aninsertion marker at a first position in the text of the electronicdocument, the text around the first position having a visual appearance;detecting a first input at a location on the touch-sensitive surface,the location on the touch-sensitive surface corresponding to a locationon the display where the text of the electronic document is displayedother than the first position in the text and a second position in thetext, wherein the first input is an input in a first direction; and inresponse to detecting the first input: in accordance with adetermination that the first input in the first direction at thelocation on the touch-sensitive surface that corresponds to the locationon the display satisfies a first set of one or more predefinedconditions: translate the electronic document on the display, andmaintain the insertion marker at the first position in the text; and, inaccordance with a determination that the first input in the firstdirection at the location on the touch-sensitive surface thatcorresponds to the location on the display satisfies a second set of oneor more predefined conditions that is distinct from the first set of oneor more predefined conditions, the second set of one or more predefinedconditions including a condition that the first input has a speedgreater than a predefined threshold velocity: move the insertion markerin the text from the first position to the second position in the text,and maintain the visual appearance of the text around the first positionin the text.
 32. The non-transitory computer-readable medium of claim31, wherein the first set of one or more predefined conditions comprisesthat a magnitude of a characteristic of the input is less than apredetermined threshold magnitude.
 33. The non-transitorycomputer-readable medium of claim 31, wherein the second set of one ormore predefined conditions comprises that a magnitude of acharacteristic of the input is greater than a predetermined thresholdmagnitude.
 34. The non-transitory computer-readable medium of claim 31,wherein the first set of one or more predefined conditions comprisesthat the first input comprises a first predefined number of contacts.35. The non-transitory computer-readable medium of claim 31, wherein thesecond set of one or more predefined conditions comprises that the firstinput comprises a second predefined number of contacts.
 36. Thenon-transitory computer-readable medium of claim 31, wherein the firstset of one or more predefined conditions comprises that the first inputcomprises movement of a contact in a first predefined direction.
 37. Thenon-transitory computer-readable medium of claim 31, wherein the secondset of one or more predefined conditions comprises that the first inputcomprises movement of a contact in a second predefined direction. 38.The non-transitory computer-readable medium of claim 31, wherein movingthe insertion marker in the text from the first position to the secondposition in the text comprises moving the insertion marker: by onecharacter; by one word; or to an adjacent line in the text.
 39. Thenon-transitory computer-readable medium of claim 31, wherein moving theinsertion marker in the text from the first position to the secondposition in the text comprises moving the insertion marker: to an edgeof a line in which the insertion marker is currently located; to an edgeof a sentence in which the insertion marker is currently located; to anedge of a paragraph in which the insertion marker is currently located;or to an edge of a page in which the insertion marker is currentlylocated.
 40. The non-transitory computer-readable medium of claim 31,wherein moving the insertion marker in the text from the first positionto the second position in the text comprises moving the insertion markerto an edge of a selected portion of the text in which the insertionmarker is currently located.
 41. The non-transitory computer-readablemedium of claim 31, wherein: determining whether the first inputsatisfies the first set of one or more predefined conditions includescomparing a magnitude of the first input with one or more thresholdvalues; and determining whether the first input satisfies the second setof one or more predefined conditions includes comparing a magnitude ofthe first input with one or more threshold values.
 42. Thenon-transitory computer-readable medium of claim 31, wherein the secondposition in the text is predetermined.
 43. The non-transitorycomputer-readable medium of claim 31, wherein the second position in thetext is not determined in accordance with a length of the first input.44. The non-transitory computer-readable medium of claim 31, whereinmaintaining the insertion marker at the first position in the textincludes moving, on the display, the insertion marker and the textaccording to the first input.